Annotation of OpenXM_contrib/gnuplot/makefile.os2, Revision 1.1.1.2
1.1 maekawa 1: #
1.1.1.2 ! maekawa 2: # $Id: makefile.os2,v 1.13.2.2 1999/10/28 10:14:55 lhecking Exp $
1.1 maekawa 3: #
1.1.1.2 ! maekawa 4: # Makefile for use with emx and GNUMake
1.1 maekawa 5: # on OS/2 3.0 and above (might also work for OS/2 2.x)
6: #
1.1.1.2 ! maekawa 7: # last modification date: 19991027
1.1 maekawa 8: #
9:
10: # We depend on using cmd.exe (or a compatible one)
11: SHELL=cmd.exe
12:
13: #
14: # ***************** Begin of Configuration section ***************************
15: #
16:
17: # Comment out the definition lines to disable the according features:
18:
19: # X11 driver
20: # requires installed XFree86
21: X11=1
22:
23: # GD (GIF) device driver
24: # requires GD library (not part of gnuplot)
25: GD=1
26:
27: # PNG device driver
28: # requires PNG and Z libraries (not part of gnuplot)
29: PNG=1
30:
31: # VESAkit support
32: # requires SVGA- and VESA Kit (not part of gnuplot)
33: VESA=1
34:
35: # GNU_ReadLine support
36: # requires GNU readline library (static or DLL; not part of gnuplot)
37: GNU_RL=1
38:
39: # DEBUGging support
40: # creates binaries suitable for debugging. Some bugs may come and go
41: # as opposed to a production build since we lower the optimization level
42: # DEBUG=1
43:
44: # MOUSE support for PM terminal
45: # (not yet supported in official release)
46: # MOUSE=1
47:
48: #
49: # ****************** End of Configuration section ****************************
50: #
51:
52: #
53: # Miscellaneous setup
54: #
55:
56: .PHONY: all runtime alldocs demo binaries infomin clean veryclean
57: .SUFFIXES: .c .trm .o .obj .exe
58:
59: # seems to be a reasonable default ...
60: default: runtime
61:
62: # a help screen
63: help:
64: @echo " Usage: $(MAKE) -f makefile.os2 target"
65: @echo " target is one of:"
66: @echo " all runtime alldocs demo binaries infomin help clean veryclean"
67:
68: #
69: # Definitions of flags and symbols used by makefile.all and makefile.os2
70: #
71:
72: # these definitions are used by makefile.all
73: T=term/
74: D=docs/
75: L=$(D)latextut/
76: M=demo/
77:
78: #
79: # Definitions valid for all targets on OS/2
80: #
81:
82: OS2DIR = os2
83: DOCDIR = docs
84: DEMODIR=demo
85: TERMDIR=term
86:
87: OS2TERMS= $(TERMDIR)\pm.trm
88: ifdef X11
89: OS2TERMS += $(TERMDIR)\x11.trm
90: endif
91: ifdef VESA
92: OS2TERMS += $(TERMDIR)\emxvga.trm
93: endif
94:
95:
96: # where to place gnuplot.gih helpfile
97: HELPFILE = gnuplot.gih
98:
99: #
100: # 3 sets of variables are defined and used to create
101: # (1): gnuplot.exe
102: # 2 : gnupmdrv.exe (the PM-driver executable)
103: # 3 : utilities like doc2*.exe, bf_test.exe, ...
104: #
105: CC = gcc
106: CC2 = gcc
107: CC3 = gcc
108: O = o
109: O2 = obj
110: O3 = o
111:
112: # Flags for compiler and linker under OS/2
113: OS2FLAGS = -DOS2 -DHELPFILE=\"$(HELPFILE)\"
114:
115: # Flags for compiling with EMX/GCC
116: # Special note: -ffloat-store is necessary to avoid some
117: # strange behaviour (confirmed for gcc 2.7.x and graphics.c)
118: EMXSPECIFIC = -ffloat-store -DREADLINE -DHAVE_STRNICMP -DPIPES -DHAVE_STRERROR -DHAVE_SYS_SELECT_H -DHAVE_SYS_STAT_H
119: LIBS =
120: ifdef GNU_RL
1.1.1.2 ! maekawa 121: EMXSPECIFIC += -DHAVE_LIBREADLINE
1.1 maekawa 122: LIBS += -lreadline -ltermcap
123: endif
124:
125: #
126: # Choose flags suitable for a debugging or for a production build
127: #
128: ifdef DEBUG
129: CFLAGS = -g $(OS2FLAGS) $(EMXSPECIFIC) -Wall -Wno-comment -O0 -Zmt
130: LFLAGS = -g -Zcrtdll -Zmt
131: CFLAGS2 = -g $(OS2FLAGS) $(EMXSPECIFIC) -Zomf -Zsys -Zmt -Wall -O0
132: LFLAGS2 = -g -Zomf -Zmt -Zcrtdll
133: CFLAGS3 = -g $(OS2FLAGS) $(EMXSPECIFIC) -Wall -Wno-comment -O0
134: LFLAGS3 = -g
135: else
136: CFLAGS = $(OS2FLAGS) $(EMXSPECIFIC) -O2 -Wall -Wno-unused -Wno-comment -Zmt
137: LFLAGS = -s -Zcrtdll -Zmt
138: CFLAGS2 = $(OS2FLAGS) $(EMXSPECIFIC) -Zomf -Zcrtdll -Zmt -O2 -Wall -Wno-unused
139: LFLAGS2 = -s -Zomf -Zmt -Zsys
140: CFLAGS3 = $(OS2FLAGS) $(EMXSPECIFIC) -O2 -Wall -Wno-unused -Wno-comment
141: LFLAGS3 = -s
142: endif
143:
144: #
145: # Settings for the terminals to be included
146: #
147: TERMFLAGS = -I. -I$(T)
148:
149: # All terminals available via #defines should be listed below
150: # Some terminals can be en/disabled in the configuration at the
151: # beginning of this Makefile.os2 but others may still require
152: # changes in term.h
153:
154: #
155: # GIF-support
156: ifdef GD
157: TERMFLAGS += -DHAVE_LIBGD
158: TERMLIBS += -lgd
159: endif
160: # PNG-support
161: ifdef PNG
162: TERMFLAGS += -DHAVE_LIBPNG
163: TERMLIBS += -lpng -lz
164: endif
165: # SVGA-/VESAkit support
166: ifdef VESA
167: TERMFLAGS += -DEMXVESA
168: TERMLIBS += -ljmgraph -lvesa
169: endif
170: # X11 support
171: ifdef X11
172: TERMFLAGS += -DX11
173: endif
174: # MOUSE support for PM terminal
175: ifdef MOUSE
176: TERMFLAGS += -DUSE_MOUSE
177: endif
178:
179: #
180: # Default Rules
181: #
182: .c.$(O):
183: $(CC) $(CFLAGS) $(TERMFLAGS) -o $*.$(O) -c $*.c
184: .c.obj:
185: $(CC2) $(CFLAGS2) -o $*.obj -c $*.c
186:
187: #
188: # Include dependencies valid for all platforms from makefile.all
189: #
190: include makefile.all
191:
192: #
193: # Pre-defined sets of targets:
194: #
195: all: runtime demo
196: alldocs: gnuplot.gih gnuplot.inf gnuplot.html gnuplot.info \
197: gnuplot.dvi gnuplot.ps
198: runtime: binaries infomin gnuplot.inf
199: infomin: gnupmdrv.hlp gnuplot.gih
200: demo: $(M)binary1 $(M)binary2 $(M)binary3
201: ifdef X11
202: binaries: gnuplot.exe gnupmdrv.exe gnuplot_x11.exe
203: else
204: binaries: gnuplot.exe gnupmdrv.exe
205: endif
206:
207: OBJS = $(COREOBJS) version.$(O)
208: term.$(O): $(OS2TERMS) term.h
209:
210: gnuplot.exe: $(OBJS)
211: $(CC) -o $@ $(OBJS) $(TERMLIBS) $(LIBS) $(LFLAGS)
212:
213: #
214: # Build the PM outboard driver
215: #
216: $(OS2DIR)\gnupmdrv.$(O2): $(OS2DIR)\gnupmdrv.c $(OS2DIR)\gnupmdrv.h
217: $(OS2DIR)\gclient.$(O2): $(OS2DIR)\gclient.c $(OS2DIR)\gnupmdrv.h
218: $(OS2DIR)\dialogs.$(O2): $(OS2DIR)\dialogs.c $(OS2DIR)\gnupmdrv.h $(OS2DIR)\dialogs.h
219: $(OS2DIR)\print.$(O2): $(OS2DIR)\print.c $(OS2DIR)\gnupmdrv.h
220: $(OS2DIR)\gnupmdrv.res : $(OS2DIR)\gnupmdrv.rc $(OS2DIR)\gnuplot.ico $(OS2DIR)\dialogs.h
221: cd $(OS2DIR) & rc -r gnupmdrv.rc & cd ..
222: OS2OBJ = $(OS2DIR)\gnupmdrv.$(O2) $(OS2DIR)\gclient.$(O2) $(OS2DIR)\print.$(O2) \
223: $(OS2DIR)\dialogs.$(O2)
224: gnupmdrv.exe: $(OS2OBJ) $(OS2DIR)\gnupmdrv.res $(OS2DIR)\gnupmdrv.def
225: $(CC2) $(LFLAGS2) -o $@ $(OS2OBJ) $(OS2DIR)\gnupmdrv.res $(OS2DIR)\gnupmdrv.def
226: gnupmdrv.hlp: $(OS2DIR)\gnupmdrv.ipf
227: ipfc $(OS2DIR)\gnupmdrv.ipf
228: move $(OS2DIR)\gnupmdrv.hlp .
229:
230: #
231: # Build the X11 outboard driver
232: #
233:
234: # X11 libraries
235: X11LIBS = -lX11 -lsocket -Zcrtdll
236: # X11 includes
237: X11INCLUDES = -I$(X11ROOT)/xfree86/include
1.1.1.2 ! maekawa 238: X11FLAGS= -Zmtd -Zsysv-signals
1.1 maekawa 239:
240: gnuplot_x11.exe: gplt_x11.o stdfn.o
241: $(CC) $(LFLAGS) $(X11FLAGS) $(EMXSPECIFIC) -o $@ $^ $(X11LIBS)
242:
243: gplt_x11.o: gplt_x11.c
244: $(CC) $(CFLAGS) $(X11FLAGS) $(EMXSPECIFIC) $(X11INCLUDES) -c -o $@ $<
245:
246: #
247: # Create documentation in various formats
248: #
249: # Change the call to LaTeX if the "latex2e" is not appropiate for you
250: # (and don't care about the strange way it's implemented ...)
251: gnuplot.dvi: gnuplot.tex
252: copy gnuplot.tex $(DOCDIR)\gnuplot_2.tex
1.1.1.2 ! maekawa 253: cd $(DOCDIR) & latex gnuplot_2.tex & latex gnuplot_2.tex
1.1 maekawa 254: move $(DOCDIR)\gnuplot_2.dvi gnuplot.dvi
255: del $(DOCDIR)\gnuplot_2*
256: gnuplot.tex: $(DOCDIR)\gnuplot.doc doc2tex.exe
257: doc2tex $(DOCDIR)\gnuplot.doc gnuplot.tex
258: gnuplot.ps: gnuplot.dvi
259: dvips -o gnuplot.ps gnuplot.dvi
260: gnuplot.inf: $(DOCDIR)\gnuplot.ipf
261: ipfc -i $(DOCDIR)\gnuplot.ipf gnuplot.inf
262: gnuplot.gih: $(DOCDIR)\gnuplot.doc doc2gih.exe
263: doc2gih $(DOCDIR)\gnuplot.doc gnuplot.gih
264: gnuplot.html: $(DOCDIR)\gnuplot.doc doc2html.exe
265: doc2html $(DOCDIR)\gnuplot.doc gnuplot.html
266: gnuplot.info: $(DOCDIR)\gnuplot.doc doc2info.exe
267: doc2info <$(DOCDIR)\gnuplot.doc >gnuplot.info
268: gnuplot.texi: $(DOCDIR)\gnuplot.doc $(DOCDIR)\doc2texi.pl
269: perl $(DOCDIR)\doc2texi.pl $(DOCDIR)\gnuplot.doc >$(DOCDIR)\gnuplot.texi
270: gnuplot.rtf: $(DOCDIR)\gnuplot.doc doc2rtf.exe
271: doc2rtf $(DOCDIR)\gnuplot.doc gnuplot.rtf
272: gnuplot.ms: $(DOCDIR)\gnuplot.doc doc2ms.exe
273: doc2ms $(DOCDIR)\gnuplot.doc gnuplot.ms
274: $(DOCDIR)\gnuplot.ipf: $(DOCDIR)\gnuplot.doc doc2ipf.exe
275: doc2ipf $(DOCDIR)\gnuplot.doc $(DOCDIR)\gnuplot.ipf
276: #
277: # Tools for converting the documentation from docs\gnuplot.doc
278: # in various formats
279: #
280: doc2gih.exe doc2ipf.exe doc2html.exe doc2info.exe doc2tex.exe doc2rtf.exe: \
281: $(DOCDIR)\termdoc.c $(DOCDIR)\xref.c $(DOCDIR)\allterm.h
282: #
283: # To include all terminal documentations in the documentation
284: # uncomment the following 2 lines
285: # doc2gih.exe doc2ipf.exe doc2html.exe doc2info.exe doc2tex.exe doc2rtf.exe: \
286: # $(DOCDIR)\termdoc.c $(DOCDIR)\xref.c $(DOCDIR)\allterm.h
287:
288: $(DOCDIR)\allterm.h: $(CORETERM)
289: # echo > $@
290: cd $(TERMDIR) & type *.trm > ..\$@
291: doc2gih.exe: $(DOCDIR)\doc2gih.c $(DOCDIR)\termdoc.c $(OS2TERMS)
292: $(CC3) $(CFLAGS3) $(TERMFLAGS) -DALL_TERM_DOC -o $@ $(DOCDIR)\doc2gih.c $(DOCDIR)\termdoc.c
293: doc2ipf.exe: $(DOCDIR)\doc2ipf.c $(DOCDIR)\termdoc.c $(DOCDIR)\xref.c $(OS2TERMS)
294: $(CC3) $(CFLAGS3) $(TERMFLAGS) -DALL_TERM_DOC -o $@ $(DOCDIR)\doc2ipf.c $(DOCDIR)\termdoc.c $(DOCDIR)\xref.c
295: doc2tex.exe: $(DOCDIR)\doc2tex.c $(DOCDIR)\termdoc.c $(OS2TERMS) $(DOCDIR)\allterm.h
296: $(CC3) $(CFLAGS3) $(TERMFLAGS) -DALL_TERM_DOC -o $@ $(DOCDIR)\doc2tex.c $(DOCDIR)\termdoc.c
297: doc2html.exe: $(DOCDIR)\doc2html.c $(DOCDIR)\termdoc.c $(DOCDIR)\xref.c $(OS2TERMS)
298: $(CC3) $(CFLAGS3) $(TERMFLAGS) -DALL_TERM_DOC -o $@ $(DOCDIR)\doc2html.c $(DOCDIR)\termdoc.c $(DOCDIR)\xref.c
299: doc2info.exe: $(DOCDIR)\doc2info.c $(DOCDIR)\termdoc.c $(DOCDIR)\xref.c $(OS2TERMS)
300: $(CC3) $(CFLAGS3) $(TERMFLAGS) -DALL_TERM_DOC -o $@ $(DOCDIR)\doc2info.c $(DOCDIR)\termdoc.c $(DOCDIR)\xref.c
301: doc2rtf.exe: $(DOCDIR)\doc2rtf.c $(DOCDIR)\termdoc.c $(DOCDIR)\xref.c $(OS2TERMS)
302: $(CC3) $(CFLAGS3) $(TERMFLAGS) -DALL_TERM_DOC -o $@ $(DOCDIR)\doc2rtf.c $(DOCDIR)\termdoc.c $(DOCDIR)\xref.c
303: doc2ms.exe: $(DOCDIR)\doc2ms.c $(DOCDIR)\termdoc.c $(OS2TERMS)
304: $(CC3) $(CFLAGS3) $(TERMFLAGS) -DALL_TERM_DOC -o $@ $(DOCDIR)\doc2ms.c $(DOCDIR)\termdoc.c
305: #
306: # Create binary demo files
307: #
308: $(M)binary1: $(M)bf_test.exe
309: cd $(DEMODIR) & bf_test.exe & cd ..
310: $(M)binary2: $(M)bf_test.exe
311: cd $(DEMODIR) & bf_test.exe & cd ..
312: $(M)binary3: $(M)bf_test.exe
313: cd $(DEMODIR) & bf_test.exe & cd ..
314: $(M)bf_test.exe : bf_test.c binary.$(O) alloc.$(O)
315: $(CC3) $(CFLAGS3) -o $@ bf_test.c binary.$(O) alloc.$(O)
316: #
317: # Clean up
318: #
319:
320: # Clean up all files temporary used
321: clean:
322: IF EXIST *.$(O) DEL *.$(O)
323: IF EXIST *.$(O2) DEL *.$(O2)
324: cd $(OS2DIR) & IF EXIST *.$(O2) DEL *.$(O2)
325: IF EXIST $(OS2DIR)\gnupmdrv.res DEL $(OS2DIR)\gnupmdrv.res
326: IF EXIST demo\bf_test.exe DEL demo\bf_test.exe
327: IF EXIST doc2*.exe DEL doc2*.exe
328: IF EXIST gnuplot.ipf DEL gnuplot.ipf
329: IF EXIST core DEL core
330: IF EXIST $(DOCDIR)\allterm.h DEL $(DOCDIR)\allterm.h
331:
332: # Clean up ALL files that were not part of the source distribution
333: veryclean: clean
334: IF EXIST *.exe.exe DEL gnuplot.exe
335: IF EXIST gnupmdrv.hlp DEL gnupmdrv.hlp
336: IF EXIST gnuplot.gih DEL gnuplot.gih
337: IF EXIST gnuplot.inf DEL gnuplot.inf
338: IF EXIST gnuplot.dvi DEL gnuplot.dvi
339: IF EXIST gnuplot.htm DEL gnuplot.htm
340: IF EXIST gnuplot.tex DEL gnuplot.tex
341: IF EXIST gnuplot.texi DEL gnuplot.texi
342: IF EXIST gnuplot.info DEL gnuplot.info
343: IF EXIST gnuplot.ms DEL gnuplot.ms
344: IF EXIST gnuplot.rtf DEL gnuplot.rtf
345: IF EXIST gnuplot.ps DEL gnuplot.ps
346: cd demo & IF EXIST binary? DEL binary?
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>