Makefile

Thu, 13 Mar 2003 11:42:23 +0000

author
eric
date
Thu, 13 Mar 2003 11:42:23 +0000
changeset 126
4089ff3b927c
parent 125
e2ef1c2f9eca
child 129
ab2409bdaa8c
permissions
-rw-r--r--

added rules to build binary release tarballs for Red Hat Linux.

eric@125 1 # tumble: build a PDF file from image files
eric@1 2 # Makefile
eric@126 3 # $Id: Makefile,v 1.30 2003/03/13 03:42:23 eric Exp $
eric@80 4 # Copyright 2001, 2002, 2003 Eric Smith <eric@brouhaha.com>
eric@1 5 #
eric@1 6 # This program is free software; you can redistribute it and/or modify
eric@1 7 # it under the terms of the GNU General Public License version 2 as
eric@1 8 # published by the Free Software Foundation. Note that permission is
eric@1 9 # not granted to redistribute this program under the terms of any
eric@1 10 # other version of the General Public License.
eric@1 11 #
eric@1 12 # This program is distributed in the hope that it will be useful,
eric@1 13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
eric@1 14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
eric@1 15 # GNU General Public License for more details.
eric@1 16 #
eric@1 17 # You should have received a copy of the GNU General Public License
eric@1 18 # along with this program; if not, write to the Free Software
eric@1 19 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA
eric@1 20
eric@1 21
eric@90 22 # Conditionals: uncomment the following defines as nessary. Note that a
eric@90 23 # "0" value is considered true by make, so to disable conditionals comment
eric@90 24 # them out or set them to a null string.
eric@86 25
eric@90 26 #DEBUG=1
eric@90 27 #EFENCE=1
eric@90 28 #STATIC=1
eric@86 29
eric@86 30
eric@86 31 CFLAGS = -Wall
eric@86 32 LDFLAGS =
eric@86 33 LDLIBS = -ltiff -ljpeg -lz -lm
eric@53 34
eric@86 35 ifdef DEBUG
eric@86 36 CFLAGS := $(CFLAGS) -g
eric@86 37 LDFLAGS := $(LDFLAGS) -g
eric@90 38 endif
eric@90 39
eric@90 40 ifdef EFENCE
eric@86 41 LDLIBS := $(LDLIBS) -lefence -lpthread
eric@86 42 endif
eric@53 43
eric@86 44 ifdef STATIC
eric@86 45 LDLIBS := -Wl,-static $(LDLIBS)
eric@86 46 endif
eric@86 47
eric@53 48
eric@6 49 YACC = bison
eric@6 50 YFLAGS = -d -v
eric@6 51
eric@53 52
eric@51 53 # -----------------------------------------------------------------------------
eric@51 54 # You shouldn't have to change anything below this point, but if you do please
eric@51 55 # let me know why so I can improve this Makefile.
eric@51 56 # -----------------------------------------------------------------------------
eric@51 57
eric@126 58 VERSION = 0.25
eric@51 59
eric@125 60 PACKAGE = tumble
eric@12 61
eric@125 62 TARGETS = tumble
eric@15 63
eric@125 64 CSRCS = tumble.c semantics.c \
eric@91 65 bitblt.c bitblt_table_gen.c bitblt_g4.c g4_table_gen.c \
eric@106 66 pdf.c pdf_util.c pdf_prim.c pdf_bookmark.c pdf_name_tree.c \
eric@119 67 pdf_text.c pdf_g4.c pdf_jpeg.c
eric@51 68 OSRCS = scanner.l parser.y
eric@125 69 HDRS = tumble.h semantics.h bitblt.h bitblt_tables.h \
eric@80 70 pdf.h pdf_private.h pdf_util.h pdf_prim.h pdf_name_tree.h
eric@51 71 MISC = COPYING Makefile
eric@51 72
eric@51 73 DISTFILES = $(MISC) $(HDRS) $(CSRCS) $(OSRCS)
eric@51 74 DISTNAME = $(PACKAGE)-$(VERSION)
eric@51 75
eric@51 76
eric@99 77 AUTO_CSRCS = scanner.c parser.tab.c bitblt_tables.c g4_tables.c
eric@99 78 AUTO_HDRS = parser.tab.h bitblt_tables.h g4_tables.h
eric@99 79 AUTO_MISC = parser.output
eric@15 80
eric@51 81
eric@90 82 -include Maketest
eric@90 83
eric@90 84
eric@90 85 all: $(TARGETS) $(TEST_TARGETS)
eric@51 86
eric@51 87
eric@125 88 tumble: tumble.o scanner.o semantics.o parser.tab.o \
eric@99 89 bitblt.o bitblt_g4.o bitblt_tables.o g4_tables.o \
eric@91 90 pdf.o pdf_util.o pdf_prim.o pdf_bookmark.o pdf_name_tree.o \
eric@119 91 pdf_text.o pdf_g4.o pdf_jpeg.o
eric@86 92 $(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -o $@
eric@86 93 ifndef DEBUG
eric@86 94 strip $@
eric@86 95 endif
eric@86 96
eric@53 97
eric@53 98 bitblt_tables.h: bitblt_table_gen
eric@97 99 ./bitblt_table_gen -h >bitblt_tables.h
eric@97 100
eric@97 101 bitblt_tables.c: bitblt_table_gen
eric@97 102 ./bitblt_table_gen -c >bitblt_tables.c
eric@53 103
eric@53 104 bitblt_table_gen: bitblt_table_gen.o
eric@53 105
eric@91 106 g4_tables.h: g4_table_gen
eric@99 107 ./g4_table_gen -h >g4_tables.h
eric@99 108
eric@99 109 g4_tables.c: g4_table_gen
eric@99 110 ./g4_table_gen -c >g4_tables.c
eric@71 111
eric@91 112 g4_table_gen: g4_table_gen.o
eric@71 113
eric@53 114
eric@51 115 dist: $(DISTFILES)
eric@51 116 -rm -rf $(DISTNAME)
eric@51 117 mkdir $(DISTNAME)
eric@51 118 for f in $(DISTFILES); do ln $$f $(DISTNAME)/$$f; done
eric@51 119 tar --gzip -chf $(DISTNAME).tar.gz $(DISTNAME)
eric@51 120 -rm -rf $(DISTNAME)
eric@51 121
eric@51 122
eric@126 123 rh-rel := $(shell sed 's/^Red Hat Linux release \([0-9][0-9]*\.[0-9][0-9]*\) (.*)/\1/' </etc/redhat-release)
eric@126 124
eric@126 125 bin-dist-rh: COPYING $(TARGETS) /etc/redhat-release
eric@126 126 tar --gzip -chf $(DISTNAME)-${rh-rel}.tar.gz COPYING $(TARGETS)
eric@126 127
eric@126 128
eric@15 129 clean:
eric@53 130 rm -f *.o *.d $(TARGETS) $(AUTO_CSRCS) $(AUTO_HDRS) $(AUTO_MISC)
eric@44 131
eric@44 132 very_clean:
eric@53 133 rm -f *.o *.d $(TARGETS) $(AUTO_CSRCS) $(AUTO_HDRS) $(AUTO_MISC) \
eric@44 134 *~ *.pdf
eric@15 135
eric@20 136 wc:
eric@51 137 wc -l $(HDRS) $(CSRCS) $(OSRCS) $(MISC)
eric@20 138
eric@20 139 ls-lt:
eric@51 140 ls -lt $(HDRS) $(CSRCS) $(OSRCS) $(MISC)
eric@20 141
eric@15 142
eric@15 143 %.tab.c %.tab.h %.output: %.y
eric@6 144 $(YACC) $(YFLAGS) $<
eric@6 145
eric@15 146
eric@90 147 ALL_CSRCS = $(CSRCS) $(AUTO_CSRCS) $(TEST_CSRCS)
eric@15 148
eric@51 149 DEPENDS = $(ALL_CSRCS:.c=.d)
eric@15 150
eric@15 151 %.d: %.c
eric@15 152 $(CC) -M -MG $(CFLAGS) $< | sed -e 's@ /[^ ]*@@g' -e 's@^\(.*\)\.o:@\1.d \1.o:@' > $@
eric@15 153
eric@15 154 include $(DEPENDS)