1 | # Makefile for PngMinus (pngm2pnm) |
---|
2 | # Linux / Unix |
---|
3 | |
---|
4 | #CC=cc |
---|
5 | CC=gcc |
---|
6 | LD=$(CC) |
---|
7 | |
---|
8 | # If awk fails try |
---|
9 | # make AWK=nawk |
---|
10 | |
---|
11 | # If cpp fails try |
---|
12 | # make CPP=/lib/cpp |
---|
13 | |
---|
14 | RM=rm -f |
---|
15 | COPY=cp |
---|
16 | |
---|
17 | CFLAGS=-DPNG_USER_CONFIG -DNO_GZCOMPRESS -DNO_GZIP -I. -O1 |
---|
18 | |
---|
19 | C=.c |
---|
20 | O=.o |
---|
21 | L=.a |
---|
22 | E= |
---|
23 | |
---|
24 | # Where to find the source code: |
---|
25 | PNGSRC =../../.. |
---|
26 | ZLIBSRC=$(PNGSRC)/../zlib |
---|
27 | PROGSRC=$(PNGSRC)/contrib/pngminus |
---|
28 | |
---|
29 | # Zlib (minimal inflate requirements - crc32 is used by libpng) |
---|
30 | # zutil can be eliminated if you provide your own zcalloc and zcfree |
---|
31 | ZSRCS = adler32$(C) crc32$(C) \ |
---|
32 | inffast$(C) inflate$(C) inftrees$(C) \ |
---|
33 | zutil$(C) |
---|
34 | |
---|
35 | # Standard headers |
---|
36 | ZH = zlib.h crc32.h inffast.h inffixed.h \ |
---|
37 | inflate.h inftrees.h zutil.h |
---|
38 | |
---|
39 | # Machine generated headers |
---|
40 | ZCONF = zconf.h |
---|
41 | |
---|
42 | # Headers callers use |
---|
43 | ZINC = zlib.h $(ZCONF) |
---|
44 | |
---|
45 | # Headers the Zlib source uses |
---|
46 | ZHDRS = $(ZH) $(ZCONF) |
---|
47 | |
---|
48 | ZOBJS = adler32$(O) crc32$(O) \ |
---|
49 | inffast$(O) inflate$(O) inftrees$(O) \ |
---|
50 | zutil$(O) |
---|
51 | |
---|
52 | # libpng |
---|
53 | PNGSRCS=png$(C) pngerror$(C) pngget$(C) pngmem$(C) \ |
---|
54 | pngread$(C) pngrio$(C) pngrtran$(C) pngrutil$(C) \ |
---|
55 | pngset$(C) pngtrans$(C) |
---|
56 | |
---|
57 | # Standard headers |
---|
58 | PNGH =png.h pngconf.h pngdebug.h pnginfo.h pngpriv.h pngstruct.h |
---|
59 | |
---|
60 | # Machine generated headers |
---|
61 | PNGCONF=pnglibconf.h |
---|
62 | |
---|
63 | # Headers callers use |
---|
64 | PNGINC= png.h pngconf.h pngusr.h $(PNGCONF) |
---|
65 | |
---|
66 | # Headers the PNG library uses |
---|
67 | PNGHDRS=$(PNGH) $(PNGCONF) pngusr.h |
---|
68 | |
---|
69 | PNGOBJS=png$(O) pngerror$(O) pngget$(O) pngmem$(O) \ |
---|
70 | pngread$(O) pngrio$(O) pngrtran$(O) pngrutil$(O) \ |
---|
71 | pngset$(O) pngtrans$(O) |
---|
72 | |
---|
73 | PROGSRCS= pngm2pnm$(C) |
---|
74 | PROGHDRS= |
---|
75 | PROGDOCS= |
---|
76 | PROGOBJS= pngm2pnm$(O) |
---|
77 | |
---|
78 | OBJS = $(PROGOBJS) $(PNGOBJS) $(ZOBJS) |
---|
79 | |
---|
80 | # implicit make rules ------------------------------------------------------- |
---|
81 | |
---|
82 | # note: dependencies do not work on implicit rule lines |
---|
83 | .c$(O): |
---|
84 | $(CC) -c $(CFLAGS) $< |
---|
85 | |
---|
86 | # dependencies |
---|
87 | |
---|
88 | all: pngm2pnm$(E) |
---|
89 | |
---|
90 | pngm2pnm$(E): $(OBJS) |
---|
91 | $(LD) -o pngm2pnm$(E) $(OBJS) |
---|
92 | |
---|
93 | # The DFA_XTRA setting turns all libpng options off then |
---|
94 | # turns on those required for this minimal build. |
---|
95 | # The CPP_FLAGS setting causes pngusr.h to be included in |
---|
96 | # both the build of pnglibconf.h and, subsequently, when |
---|
97 | # building libpng itself. |
---|
98 | $(PNGCONF): $(PNGSRC)/scripts/pnglibconf.mak\ |
---|
99 | $(PNGSRC)/scripts/pnglibconf.dfa \ |
---|
100 | $(PNGSRC)/scripts/options.awk pngusr.h pngusr.dfa |
---|
101 | $(RM) pnglibconf.h pnglibconf.dfn |
---|
102 | $(MAKE) $(MAKEFLAGS) -f $(PNGSRC)/scripts/pnglibconf.mak\ |
---|
103 | srcdir=$(PNGSRC) CPPFLAGS="-DPNG_USER_CONFIG"\ |
---|
104 | DFA_XTRA="pngusr.dfa" $@ |
---|
105 | |
---|
106 | clean: |
---|
107 | $(MAKE) $(MAKEFLAGS) -f $(PNGSRC)/scripts/pnglibconf.mak\ |
---|
108 | srcdir=$(PNGSRC) clean |
---|
109 | $(RM) pngm2pnm$(O) |
---|
110 | $(RM) pngm2pnm$(E) |
---|
111 | $(RM) $(OBJS) |
---|
112 | |
---|
113 | # distclean also removes the copied source and headers |
---|
114 | distclean: clean |
---|
115 | $(RM) -r scripts # historical reasons |
---|
116 | $(RM) $(PNGSRCS) $(PNGH) |
---|
117 | $(RM) $(ZSRCS) $(ZH) $(ZCONF) |
---|
118 | $(RM) $(PROGSRCS) $(PROGHDRS) $(PROGDOCS) |
---|
119 | |
---|
120 | # Header file dependencies: |
---|
121 | $(PROGOBJS): $(PROGHDRS) $(PNGINC) $(ZINC) |
---|
122 | $(PNGOBJS): $(PNGHDRS) $(ZINC) |
---|
123 | $(ZOBJS): $(ZHDRS) |
---|
124 | |
---|
125 | # Gather the source code from the respective directories |
---|
126 | $(PNGSRCS) $(PNGH): $(PNGSRC)/$@ |
---|
127 | $(RM) $@ |
---|
128 | $(COPY) $(PNGSRC)/$@ $@ |
---|
129 | |
---|
130 | # No dependency on the ZLIBSRC target so that it only needs |
---|
131 | # to be specified once. |
---|
132 | $(ZSRCS) $(ZH): |
---|
133 | $(RM) $@ |
---|
134 | $(COPY) $(ZLIBSRC)/$@ $@ |
---|
135 | |
---|
136 | # The unconfigured zconf.h varies in name according to the |
---|
137 | # zlib release |
---|
138 | $(ZCONF): |
---|
139 | $(RM) $@ |
---|
140 | @for f in zconf.h.in zconf.in.h zconf.h; do\ |
---|
141 | test -r $(ZLIBSRC)/$$f &&\ |
---|
142 | echo $(COPY) $(ZLIBSRC)/$$f $@ &&\ |
---|
143 | $(COPY) $(ZLIBSRC)/$$f $@ && exit 0;\ |
---|
144 | done; echo copy: $(ZLIBSRC)/zconf.h not found; exit 1 |
---|
145 | |
---|
146 | pngm2pnm.c: $(PROGSRC)/png2pnm.c |
---|
147 | $(RM) $@ |
---|
148 | $(COPY) $(PROGSRC)/png2pnm.c $@ |
---|
149 | |
---|
150 | # End of makefile for pngm2pnm |
---|