boxes/src/Makefile

173 lines
6.1 KiB
Makefile
Raw Normal View History

#
# File: Makefile
# Creation: March 18, 1999 (Thursday, 15:10h)
# Author: Copyright (C) 1999 Thomas Jensen
# tsjensen@stud.informatik.uni-erlangen.de
# Version: $Id: Makefile,v 1.12 1999/07/20 18:49:58 tsjensen Exp tsjensen $
# Format: GNU make
# Web Site: http://home.pages.de/~jensen/boxes/
# Platforms: sparc/Solaris 2.6 and others
# Purpose: Makefile for boxes, the box drawing program
#
# Remarks: o This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
# o This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# o You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
#
# Revision History:
#
# $Log: Makefile,v $
# Revision 1.12 1999/07/20 18:49:58 tsjensen
# Added GNU GPL disclaimer
# Now evaluating date command from SNAPFILE only once
# Changed order of files in snapshot archive (who cares)
#
# Revision 1.11 1999/07/12 18:28:53 tsjensen
# Removed --yacc option from bison call
# Added logpage target to generate the chronologically sorted global change
# log in HTML format. This requires a Perl script (create_changelog.pl).
# Added config.h to dependencies and stuff
# Removed special targets for yacc and lex files. Thanks to Andreas Heiduk,
# it is now possible to compile all files with -W -Wall and no extra
# defines.
# Moved regexp library to a subdirectory regexp
# Some modifications on the source file macros which now differentiate
# between files which are listed in the HTML change log and files which
# aren't.
#
# Revision 1.10 1999/07/02 11:50:35 tsjensen
# Added parser.h header file for lexer-parser communication
# Moved from yacc to GNU "bison --yacc"
# No longer linking with flex library
# Activated -Wall -W for parser.y
# Removed -DYY_NO_UNPUT from lexer compilation (now done via file option)
#
# Revision 1.9 1999/06/28 12:21:34 tsjensen
# Added macro SNAPFILE for boxes-SNAP-`date +%Y%m%d`
# Added target rcstest
# Now builds optimized code by default
# Added debug target for non-optimized code w/ debugging info
#
# Revision 1.8 1999/06/23 19:35:17 tsjensen
# Added remove.o and generate.o
# Introduced implicit rule .c.o, simplifying commands for most sources
#
# Revision 1.7 1999/06/23 12:27:50 tsjensen
# Added tools.o and shape.o
# Change in snapshot target directory (download)
# Added GENSRC, HSSRC, ORIGSRC, ALLSRC, and ALLOBJ macros for more order
#
# Revision 1.6 1999/06/04 12:15:37 tsjensen
# Added snap target for automatic snapshot publication
#
# Revision 1.5 1999/04/04 16:12:40 tsjensen
# Added rules for new regular expression handling files
# Added file header
# Straightened out clean commands
#
# Revision 1.4 1999/04/03 12:01:01 tsjensen
# Added build target for optimized compilation
# Now linking with flex library instead of lex library
#
# Revision 1.3 1999/03/22 10:57:14 tsjensen
# Added -D__EXTENSIONS__
# Compile everything but the parser with -Wall -W
#
# Revision 1.2 1999/03/19 17:58:14 tsjensen
# Added boxes.o to clean target
# Switched language to ANSI C / POSIX_SOURCE
# Added -Wall -W to boxes core compilation
#
# Revision 1.1 1999/03/18 15:10:41 tsjensen
# Initial revision
#____________________________________________________________________________
#============================================================================
1999-03-18 16:08:57 +01:00
LEX = flex
YACC = bison
CC = gcc
CFLAGS = -ansi -I. -Iregexp $(CFLAGS_ADDTL)
LDFLAGS = -Lregexp
GEN_HDR = parser.h
GEN_SRC = parser.c lex.yy.c
GEN_FILES = $(GEN_SRC) $(GEN_HDR)
ORIG_HDRCL = boxes.h
ORIG_HDR = $(ORIG_HDRCL) lexer.h tools.h shape.h generate.h remove.h config.h
ORIG_GEN = lexer.l parser.y
ORIG_NORM = boxes.c tools.c shape.c generate.c remove.c
ORIG_SRC = $(ORIG_GEN) $(ORIG_NORM)
ORIG_FILES = $(ORIG_SRC) $(ORIG_HDR)
OTH_FILES = Makefile
1999-03-18 16:08:57 +01:00
ALL_CL = $(ORIG_SRC) $(ORIG_HDRCL) $(OTH_FILES)
ALL_FILES = $(ORIG_FILES) $(GEN_FILES) $(OTH_FILES)
ALL_OBJ = $(GEN_SRC:.c=.o) $(ORIG_NORM:.c=.o)
build:
$(MAKE) CFLAGS_ADDTL=-O boxes
strip boxes
debug:
$(MAKE) CFLAGS_ADDTL=-g boxes
boxes: $(ALL_OBJ)
$(MAKE) -C regexp CC=$(CC) libregexp.a
$(CC) $(LDFLAGS) $(ALL_OBJ) -o boxes -lregexp
parser.c parser.h: parser.y boxes.h regexp/regexp.h
$(YACC) -o parser.c -d parser.y
lex.yy.c: lexer.l boxes.h
$(LEX) -i -t lexer.l > lexer.tmp.c
echo '#include "config.h"' > lex.yy.c
cat lexer.tmp.c >> lex.yy.c
rm lexer.tmp.c
boxes.o: boxes.c boxes.h regexp/regexp.h shape.h tools.h generate.h remove.h config.h
tools.o: tools.c tools.h boxes.h shape.h config.h
shape.o: shape.c shape.h boxes.h config.h tools.h
generate.o: generate.c generate.h boxes.h shape.h tools.h config.h
remove.o: remove.c remove.h boxes.h shape.h tools.h config.h
lex.yy.o: lex.yy.c parser.h tools.h shape.h lexer.h config.h
parser.o: parser.c parser.h tools.h shape.h lexer.h config.h
1999-03-18 16:08:57 +01:00
.c.o:
$(CC) $(CFLAGS) -Wall -W -c $<
snap: $(ALL_FILES)
if [ -z "$(SNAPFILE)" ] ; then exit 1 ; fi
mkdir $(SNAPFILE)/src
cp $(ALL_FILES) $(SNAPFILE)/src
touch $(patsubst %,$(SNAPFILE)/src/%,$(GEN_FILES))
$(MAKE) -C regexp SNAPFILE=../$(SNAPFILE) snap
rcstest:
-for i in $(ORIG_FILES) $(OTH_FILES) ; do rcsdiff $$i ; done
$(MAKE) -C regexp rcstest
logpage: $(ALL_CL)
@echo $(ALL_CL) $(shell $(MAKE) -C regexp -s logpage)
1999-03-18 16:08:57 +01:00
clean:
rm -f $(ALL_OBJ)
rm -f $(GEN_FILES)
rm -f core boxes
$(MAKE) -C regexp clean
1999-03-18 16:08:57 +01:00
love:
@echo "Not in front of the kids, honey!"
#EOF