Annotation of OpenXM/src/kan96xx/Kan/Makefile.in, Revision 1.6
1.6 ! takayama 1: ### $OpenXM: OpenXM/src/kan96xx/Kan/Makefile.in,v 1.5 2003/07/21 12:41:24 takayama Exp $
1.1 takayama 2: all : sm1
3: # .SUFFIXES:
4: ########################## configuration ##############################
5: TOPDIR=../../../../OpenXM
6: OpenXM_HOME=${TOPDIR}
7: OpenXM_include=$(OpenXM_HOME)/include
1.5 takayama 8: OpenXM_lib=$(OpenXM_HOME)/lib
1.1 takayama 9: #### What C compiler do you use?
10: CC = gcc
11: #### Gargabe collector? If GC = nogc.c, then you need to define -DNOGC.
12: GC = $(OpenXM_HOME)/lib/libgc.a
13: #GC = nogc.c
14: #### -D options
15: DDD = -D_BSD_SOURCE
16: #DDD = -DNOGC -D_BSD_SOURCE
17: #STATIC_LINK_FLAG = -static
18: STATIC_LINK_FLAG =
19:
20: #### Optimization level etc.
21: #CFLAGS =
1.2 takayama 22: #### option for gdb CFLAGS = -g
1.3 takayama 23: CFLAGS = -O
1.1 takayama 24: #### optimizer which seems not to be reliable at level 2,3 and 4.
25: #CFLAGS = -O
26: #### profiler to output mon.out
27: #CFLAGS = -O
28:
29: GMP_HOME2 = ../../gmp
30: LIBGMP = @@@LIBGMP@@@
31: ## This line is for buggy linux-gmp.
32: ##LIBGMP = $(GMP_HOME)/libgmp.a $(GMP_HOME)/mpn/libmpn.a
33:
34: ## Library you need on Solaris 2.*
35: SOLARISLIB = -lnsl -lsocket /usr/ucblib/libucb.a
1.6 ! takayama 36: LIBOX_PATHFINDER = -lox_pathfinder
1.1 takayama 37:
38: ################### Plugin modules
39: ## Note that you need to make PLUGIN_LIB by your hand.
40: ## Example:
41: ## (1)
42: ##PLUGIN = ../plugin
43: ##PLUGIN_PROTOTYPE = $(PLUGIN)/sample.h $(PLUGIN)/graphic0.h
44: ##PLUGIN_LIB = $(PLUGIN)/sample.a $(PLUGIN)/graphic0.a
45: ##PLUGIN_EXT = $(PLUGIN)/sample.hh $(PLUGIN)/graphic0.hh
46: ##PLUGIN_SM1 =$(PLUGIN)/sample.sm1 $(PLUGIN)/graphic0.sm1
47: ##PLUGIN_LINKFLAG = -lx11
48: ###### end of example. If you do not use plugins, remove the following lines
49: ###### which starting with PLUGIN*
50: #### (2) cmo, file2, socket
51: #### Note : if you change below, make the same changes at AAA.
52: PLUGIN = ../plugin
53: PLUGIN_PROTOTYPE = $(PLUGIN)/mathcap.h $(PLUGIN)/file2.h $(PLUGIN)/sm1Socket.h $(PLUGIN)/cmo.h $(PLUGIN)/ox.h
54: PLUGIN_LIB = $(PLUGIN)/sm1Socket.a $(PLUGIN)/cmo.a $(PLUGIN)/file2.a $(PLUGIN)/ox.a
55: PLUGIN_EXT = $(PLUGIN)/file2.hh $(PLUGIN)/sm1Socket.hh $(PLUGIN)/cmo.hh $(PLUGIN)/ox.hh
56: PLUGIN_SM1 = $(PLUGIN)/sm1Socket.sm1 $(PLUGIN)/file2.sm1 $(PLUGIN)/cmo.sm1 $(PLUGIN)/oxx.sm1
57: PLUGIN_LINKFLAG =
58: #### AAA (2) cmo, file2, socket
59: #PLUGIN = ../plugin
60: #PLUGIN_PROTOTYPE = $(PLUGIN)/mathcap.h $(PLUGIN)/file2.h $(PLUGIN)/sm1Socket.h $(PLUGIN)/cmo.h $(PLUGIN)/ox.h
61: #PLUGIN_LIB = $(PLUGIN)/sm1Socket.a $(PLUGIN)/cmo.a $(PLUGIN)/file2.a $(PLUGIN)/ox.a
62: #PLUGIN_EXT = $(PLUGIN)/file2.hh $(PLUGIN)/sm1Socket.hh $(PLUGIN)/cmo.hh $(PLUGIN)/ox.hh
63: #PLUGIN_SM1 = $(PLUGIN)/sm1Socket.sm1 $(PLUGIN)/file2.sm1 $(PLUGIN)/cmo.sm1 $(PLUGIN)/oxx.sm1
64: #PLUGIN_LINKFLAG =
65: #### (3) cmo only
66: #PLUGIN = ../plugin
67: #PLUGIN_PROTOTYPE = $(PLUGIN)/mathcap.h $(PLUGIN)/cmo.h
68: #PLUGIN_LIB = $(PLUGIN)/cmo.a
69: #PLUGIN_EXT = $(PLUGIN)/cmo.hh
70: #PLUGIN_SM1 =
71: #PLUGIN_LINKFLAG =
72: ### (4) sm1 with asir, file2, socket cmo.
73: ### You also need the special GC for asir.
74: #PLUGIN = ../plugin
75: #PLUGIN_PROTOTYPE = $(PLUGIN)/mathcap.h $(PLUGIN)/file2.h $(PLUGIN)/sample.h $(PLUGIN)/sm1Socket.h $(PLUGIN)/asir.h $(PLUGIN)/cmo.h
76: #PLUGIN_LIB = $(PLUGIN)/file2.a $(PLUGIN)/sample.a $(PLUGIN)/sm1Socket.a $(PLUGIN)/libasir.a $(PLUGIN)/asirconv.a $(PLUGIN)/ak.a $(PLUGIN)/cmo.a
77: #PLUGIN_EXT = $(PLUGIN)/file2.hh $(PLUGIN)/sample.hh $(PLUGIN)/sm1Socket.hh $(PLUGIN)/asir.hh $(PLUGIN)/cmo.hh
78: #PLUGIN_SM1 = $(PLUGIN)/file2.sm1 $(PLUGIN)/sample.sm1 $(PLUGIN)/sm1Socket.sm1
79: #PLUGIN_LINKFLAG = -lpari -lXaw -lXmu -L/usr/X11R6/lib -lXt -lX11 -lXt -lSM -lICE -lXext -lX11 -lm
80: ############################ end of configuration ########################
81:
82: #HEADERS = datatype.h stackm.h lookup.h extern.h kclass.h Makefile
83: HEADERS = datatype.h stackm.h lookup.h extern.h kclass.h
84: .c.o :
85: $(CC) -I$(OpenXM_include) $(CFLAGS) $(DDD) -c $<
86:
87: kanlibP = kanExport0.o kanExport1.o
88: kanlibS1 = stackmachine.o
89: kanlibS2 = scanner.o scanner2.o list.o global.o kclass.o
90: kanlibS3 = usage.o option.o
91: kanlibS4 = primitive.o
1.2 takayama 92: kanlibK = matrix.o poly4.o replace.o poly3.o poly3a.o poly.o output.o coeff.o order.o switch.o poly2.o parser.o parserpass0.o rat.o ext.o
1.4 takayama 93: kanlibK2 = gradedset.o red.o gb.o gbGM.o syz0.o redm.o sugar.o resol.o hilbert.o ecart.o
1.1 takayama 94: kanlibKclass = Kclass/sample.o Kclass/rawcmo.o Kclass/indeterminate.o
95:
96: ##### Add also to Kclass/Makefile
97: Kclass/sample.o : $(HEADERS) Kclass/sample.c
98: (cd Kclass ; make CC=$(CC) GMP_HOME2=$(GMP_HOME2) CFLAGS=$(CFLAGS) DDD=$(DDD) sample.o )
99: Kclass/rawcmo.o : $(HEADERS) Kclass/rawcmo.c
100: (cd Kclass ; make CC=$(CC) GMP_HOME2=$(GMP_HOME2) CFLAGS=$(CFLAGS) DDD=$(DDD) rawcmo.o )
101: Kclass/indeterminate.o : $(HEADERS) Kclass/indeterminate.c
102: (cd Kclass ; make CC=$(CC) GMP_HOME2=$(GMP_HOME2) CFLAGS=$(CFLAGS) DDD=$(DDD) indeterminate.o )
103:
104:
105: ######
106: redm.o : extern2.h gradedset.h $(HEADERS)
107: sugar.o : extern2.h gradedset.h $(HEADERS)
108: syz0.o : extern2.h gradedset.h $(HEADERS)
109: resol.o : extern2.h gradedset.h $(HEADERS)
110: hilbert.o : extern2.h gradedset.h $(HEADERS)
111: gbGM.o : extern2.h gradedset.h $(HEADERS)
112: gb.o : extern2.h gradedset.h $(HEADERS)
113: red.o : extern2.h gradedset.h $(HEADERS)
114: gradedset.o : extern2.h gradedset.h $(HEADERS)
1.4 takayama 115: ecart.o : extern2.h gradedset.h $(HEADERS)
1.1 takayama 116:
117: ########
118: matrix.o : extern2.h matrix.h $(HEADERS)
119: poly4.o : extern2.h matrix.h $(HEADERS)
120: replace3.o : extern2.h $(HEADERS)
121: poly3.o : extern2.h $(HEADERS)
1.2 takayama 122: poly3a.o : extern2.h $(HEADERS)
1.1 takayama 123: parserpass0.o : extern2.h $(HEADERS)
124: parser.o : extern2.h $(HEADERS)
125: poly2.o : extern2.h $(HEADERS)
126: switch.o : extern2.h $(HEADERS) gradedset.h
127: order.o : extern2.h $(HEADERS)
128: coeff.o : extern2.h $(HEADERS)
129: output.o : extern2.h $(HEADERS)
130: poly.o : extern2.h $(HEADERS)
131: rat.o : extern2.h $(HEADERS)
132: ext.o : extern2.h $(HEADERS) plugin.h plugin.hh
133:
134: MSG0 = msg0.o
135:
136: sm1 : sm.c $(kanlibS1) $(kanlibS2) $(kanlibS3) $(kanlibS4) $(kanlibP) $(kanlibK) $(kanlibK2) $(kanlibKclass) $(PLUGIN_LIB) ${GC}
137: if test `uname` = "SunOS" ; \
138: then \
1.6 ! takayama 139: $(CC) -I$(OpenXM_include) $(CFLAGS) $(DDD) -o sm1 sm.c $(kanlibS1) $(kanlibS2) $(kanlibS3) $(kanlibS4) $(kanlibP) $(kanlibK) $(kanlibK2) $(kanlibKclass) $(PLUGIN_LIB) $(LIBGMP) ${GC} $(PLUGIN_LINKFLAG) $(SOLARISLIB) ${LIBOX_PATHFINDER} ; \
1.1 takayama 140: else \
1.6 ! takayama 141: $(CC) ${STATIC_LINK_FLAG} -I$(OpenXM_include) $(CFLAGS) $(DDD) -o sm1 sm.c $(kanlibS1) $(kanlibS2) $(kanlibS3) $(kanlibS4) $(kanlibP) $(kanlibK) $(kanlibK2) $(kanlibKclass) $(PLUGIN_LIB) $(LIBGMP) ${GC} $(PLUGIN_LINKFLAG) ${LIBOX_PATHFINDER} ; \
1.1 takayama 142: fi
143:
144:
145: $(kanlibP) : $(HEADERS) gradedset.h extern2.h
146: $(kanlibS1) : $(HEADERS) smacro.h gradedset.h
147: $(kanlibS2) : $(HEADERS) gradedset.h extern2.h
148: $(kanlibS3) : $(HEADERS) gradedset.h extern2.h
149: $(kanlibS4) : $(HEADERS) gradedset.h
150:
151:
1.5 takayama 152: kanlib.a : $(kanlibS1) $(kanlibS2) $(kanlibS3) $(kanlibS4) $(kanlibP) $(kanlibK) $(kanlibK2) $(kanlibKclass) $(PLUGIN_LIB) kanlib.o ${OpenXM_lib}/libox_pathfinder.a
1.1 takayama 153: (cd plugin-tmp; /bin/rm -f *.o; ../ar-decomp $(PLUGIN_LIB) ; cp ../kanlib.o .)
1.5 takayama 154: (cd plugin-tmp; ../ar-decomp ${OpenXM_lib}/libox_pathfinder.a)
1.1 takayama 155: ar ru kanlib.a $(kanlibS1) $(kanlibS2) $(kanlibS3) $(kanlibS4) $(kanlibP) $(kanlibK) $(kanlibK2) $(kanlibKclass) plugin-tmp/*.o
156: ../gc/if_not_there ../gc/on_sparc_sunos5 ranlib kanlib.a
157:
158: ##sm1 : sm.c kanlib.a $(GC)
159: ## $(CC) -I$(OpenXM_include) $(CFLAGS) $(DDD) -o sm1 sm.c kanlib.a $(LIBGMP) $(GC) $(SOLARISLIB) $(PLUGIN_LINKFLAG)
160:
161:
162: ############ smacro.h and lookup.h
163: smacro.h : smacro.sm1 dr.sm1 module1.sm1 sugar.sm1 usage.sm1 mm $(PLUGIN_SM1)
164: touch smacro.h
165: /bin/rm smacro.h
166: cat smacro.sm1 dr.sm1 module1.sm1 sugar.sm1 usage.sm1 $(PLUGIN_SM1) | ./mm >smacro.h
167:
168: lookup.h : stackm.h mklookup
169: touch lookup.h
170: /bin/rm lookup.h
171: ./mklookup >lookup.h
172:
173: mm : mm.c
174: $(CC) -o mm mm.c
175: mklookup : mklookup.c
176: $(CC) -I$(OpenXM_include) -o mklookup mklookup.c
177:
178: ############# sm1 stack machine without algebraic part.
179: sm00 : sm.c $(kanlibS1) $(kanlibS2) $(kanlibP) $(PLUGIN_LIB) ${GC}
180: $(CC) -I$(OpenXM_include) $(CFLAGS) $(DDD) -o sm00 sm.c $(kanlibS1) $(kanlibS2) $(PLUGIN_LIB) $(LIBGMP) ${GC} $(PLUGIN_LINKFLAG) $(SOLARISLIB)
181:
182: ############### plugins
183: plugin.hh : Makefile $(PLUGIN_EXT)
184: rm -f plugin.hh
185: echo '/* Do not edit this file. */' > plugin.hh
186: ./cat0 $(PLUGIN_EXT) >>plugin.hh
187:
188: plugin.h : Makefile $(PLUGIN_PROTOTYPE)
189: rm -f plugin.h
190: echo '/* Do not edit this file. */' > plugin.h
191: ./cat0 $(PLUGIN_PROTOTYPE) >>plugin.h
192:
193: plugin.sm1 : Makefile $(PLUGIN_SM1)
194: rm -f plugin.sm1
195: echo '%% Do not edit this file.' > plugin.sm1
196:
197: install-lib: kanlib.a
198: cp ../plugin/kancmo.h /usr/src/local/yama
199: cp kanlib.a /usr/src/local/yama/kanlib.a
200:
201:
202: clean :
203: rm -f mklookup mm core sm1 lookup.h smacro.h *.o *~ *.a mon.out sm1.nogc kanlib.a plugin.h plugin.hh plugin-tmp/*.o Kclass/*.o Kclass/*~ makeconf makeconf.sed
204:
205: cleana :
206: rm -f mklookup mm core sm1 lookup.h smacro.h *.o *~ *.a mon.out sm1.nogc kanlib.a plugin.h plugin.hh plugin-tmp/*.o Kclass/*.o Kclass/*~ makeconf makeconf.sed Makefile
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>