two bug corrections in PolyhedronIncludes and DomainDifference (reported by skimo...
[polylib.git] / Makefile
blob3d21c08ffb53499105808d2b58d0872e2ed7cfcd
1 ################################################
2 ## PolyLib Makefile. Version : 5.0 ##
3 ## Vincent Loechner, 1998/99/00. ##
4 ################################################
5 ## Main targets of this makefile are :
6 ## all, libs, install-libs, exec, install[-exec], uninstall,
7 ## 32ln-exec, 64ln-exec (to link executables without the extra suffix)
8 ## Other targets : 32, 64, typecheck.
10 include vars.mk
12 ############################################################
13 ### IMPORTANT NOTE : The defines below should no longer be used:
14 ### They are done by the configure script generating the file vars.mk
16 ############################################################
17 ### Which variants to build : 32 bits, 64 bits, or both.
18 ### recommanded: both 32 and 64 libs, 64 executables.
19 ##LIBS_TO_BUILD=32
20 ##LIBS_TO_BUILD=64
21 #LIBS_TO_BUILD=32 64
22 #EXEC_TO_BUILD=32
23 ##EXEC_TO_BUILD=64
24 ##EXEC_TO_BUILD=32 64
26 ### Define one of these to add an extra suffix to the executables
27 ### This is usefull if you have multiple executables installed
28 ### (32/64 bits or with/without GNU-MP for example)
29 ##EXEC_EXTRA_SUFFIX = $(BITS)
30 ##EXEC_EXTRA_SUFFIX = $(BITS).GMP
32 ############################################################
33 ### Type of integer to use (see ./ArithLib/ for details)
34 ### ------------------64 bits integers----------------------
35 #LONG_BITS= 64
37 ### 1. On most systems, 'long long int' is the 64 bits integer definition.
38 ### If this is your case define the following :
39 #LONG_AFLAGS = -DLINEAR_VALUE_IS_LONGLONG -DLINEAR_VALUE_PROTECT_MULTIPLY \
40 # -DLINEAR_VALUE_ASSUME_SOFTWARE_IDIV
42 ### 2. On some systems/processors (Alpha 21164 for example) 'long int'
43 ### is the type for 64 bits integers
44 ### If this is your case, define the following :
45 ##LONG_AFLAGS = -DLINEAR_VALUE_IS_LONG -DLINEAR_VALUE_PROTECT_MULTIPLY \
46 ## -DLINEAR_VALUE_ASSUME_SOFTWARE_IDIV
48 ### ------------------32 bits integers----------------------
49 #INT_BITS= 32
50 #INT_AFLAGS = -DLINEAR_VALUE_IS_INT
52 ### --------------------------------------------------------
53 ### For the typechecking tests, this typedefs Value as 'char *' :
54 ### (the executables won't run, this is just a compilation test)
55 #CHECK_BITS= chars
56 #CHECK_AFLAGS = -DLINEAR_VALUE_IS_CHARS -DLINEAR_VALUE_PROTECT_MULTIPLY
59 ############################################################
60 ### GNU-MP stuff
62 ### Define these 4 lines if you want to use the GNU-mp (multiple precision)
63 ### library when there is an overflow in Ehrhart
64 #GFLAGS = -DGNUMP
65 #EXTRA_LIBS =
67 ### Define these 5 lines if your GNU-MP lib is not in the standard directory
68 ##GMPDIR=/usr/local
69 ##GMPLIB=$(GMPDIR)/lib
70 ##GMPINCLUDE=$(GMPDIR)/include
71 ##EXTRA_INCLUDES = -I$(GMPINCLUDE)
72 ##EXTRA_LIBS += -L$(GMPLIB)
74 ############################################################
75 ### Compiler stuff
76 #CC = /soft/purify/purify -best-effort -cache-dir=/tmp/purify gcc
77 #CC = gcc
78 #CFLAGS = -O4 -Wall -g
79 ##CFLAGS = -O4
80 #LDFLAGS =
81 #EXTRA_LIBS += -lm
83 ### In modern systems, just define ranlib as 'echo'
84 #RANLIB = echo
86 ### LD flag to generate a shared library.
87 ### if you use GNU ld define:
88 #SHAREDLIB_FLAG = -shared
89 ### else define:
90 ##SHAREDLIB_FLAG = -G
92 ### set this if it is not defined by default (on HPUX for example)
93 ##OSTYPE = HPUX
95 ############################################################
96 ### Installation directories, name of executables.
98 ### make install puts everything here:
99 ### (if you choose method 2. 3. or 4. below)
100 #INSTALLDIR = /usr/local
101 #BINDIR = $(INSTALLDIR)/bin
102 #LIBDIR = $(INSTALLDIR)/lib
103 #INCLUDEDIR = $(INSTALLDIR)/include
104 #MANDIR = $(INSTALLDIR)/man
105 #DOCSDIR = $(INSTALLDIR)/doc/packages/polylib-$(VERSION)
107 ############################################################
108 ### Installing the library
110 ### Choose one of these 4 installation methods:
111 ### 1. don't install the lib (just test the polylib)
112 ### 2. install the shared lib
113 ### 3. install the static lib
114 ### 4. install both static and shared libs (recommended)
116 ### 1. don't install polylib anywhere (static linking).
117 ### define these 3 lines if you just want to test the library.
118 ### If you choose this, you won't be able to build other packages
119 ### such as the VisuDomain tool (well indeed you can by making
120 ### naughty changes in its makefile :-)
121 ##INSTALL_LIB =
122 ##EXEC_EXTRA_LIBS = $(LIB)
124 ### Define this in combination with 2, 3, or 4 below
125 ### (2. 3. and 4. -needed) general static/shared defines
126 ### define this to link polylib with the executables:
127 ##EXEC_EXTRA_LIBS += -lpolylib$(BITS)
128 ### -optional: if the library is not installed in a standard path, define:
129 ##EXEC_EXTRA_LIBS += -L$(LIBDIR)
131 ### 2. (shared)
132 ### Install the shared library:
133 ##INSTALL_LIB = install-shared
134 ### this is in most cases not necessary since it is the default:
135 ##EXEC_EXTRA_LIBS += -Bdynamic
136 ### On linux define this to run ldconfig after building the shared library:
137 ##LDCONFIG = ldconfig
139 ### 3. (static)
140 ### Install the static library:
141 ##INSTALL_LIB = install-static
143 ### 4. (static AND shared)
144 ### Install both static and shared libs:
145 ##INSTALL_LIB = install-static install-shared
146 ### this is in most cases not necessary since it is the default:
147 ##EXEC_EXTRA_LIBS += -Bdynamic
148 ### On linux define this to run ldconfig after building the shared library:
149 ##LDCONFIG = ldconfig
152 ### (2. and 4. -optional)
153 ### Using shared libraries in non-standard paths.
154 ### It is strongly discouraged to use this directory hard-coding
155 ### in the executables. Anyway, it's not very usefull to have a
156 ### shared object in a private directory. This can be used for
157 ### testing purpose.
158 ### On SVR4 (solaris, ...) to avoid defining LD_LIBRARY_PATH define:
159 ##EXEC_LDFLAGS += -R$(LIBDIR)
160 ### with GNU ld define:
161 ##EXEC_LDFLAGS += -r$(LIBDIR)
163 mkinstalldirs = $(SHELL) ./mkinstalldirs
165 #############################################################
166 ##-------------------END OF USER DEFINES-------------------##
167 #############################################################
168 ## you shouldn't need to change anything below this line ##
169 #############################################################
171 #############################################################
172 ## more defines
173 ## where to put intermediate objects and executables:
174 OBJ_DIR = Obj.$(BITS).$(BUILD)-$(HOST)-$(OSTYPE)
175 LIB = $(OBJ_DIR)/$(PSTATIC)
176 #EXEC_EXTRA_LIBS = -L./$(OBJ_DIR) $(EXEC_EXTRA_LIBS)
178 POLYLIB_INC = ./include/polylib
179 POLYLIB_SRC = ./source
180 EXTRA_INCLUDES += -I ./include
181 ARITH_DIR = ./ArithLib
182 CFLAGS += $(EXTRA_INCLUDES) $(AFLAGS) $(EXTRA_FLAGS)
184 PSTATIC = libpolylib$(BITS).a.$(VERSION)
185 PSHARED = libpolylib$(BITS).$(SHEXT).$(VERSION)
187 PEXEC = \
188 testlib \
189 polytest \
190 c2p \
191 r2p \
192 findv \
193 pp \
194 union_disjointe \
195 union_convex \
196 ehrhart \
197 verif_ehrhart\
198 Zpolytest\
199 example
201 POLY_EXEC= $(PEXEC:%=$(OBJ_DIR)/%$(EXEC_EXTRA_SUFFIX))
203 CFILES= \
204 errormsg.c \
205 vector.c \
206 matrix.c \
207 polyhedron.c \
208 polyparam.c \
209 param.c \
210 alpha.c \
211 ehrhart.c \
212 eval_ehrhart.c \
213 SolveDio.c \
214 Lattice.c \
215 Matop.c \
216 NormalForms.c \
217 Zpolyhedron.c
218 LIB_CFILES = $(CFILES:%=$(POLYLIB_SRC)/%)
220 PHEADERS= $(CFILES:%.c=$(POLYLIB_INC)/%.h) \
221 $(POLYLIB_INC)/polylib.h $(POLYLIB_INC)/types.h \
222 $(POLYLIB_INC)/arithmetique.h $(POLYLIB_INC)/arithmetic_errors.h \
223 vars.mk
225 LIB_OBJECTS= $(CFILES:%.c=$(OBJ_DIR)/%.o)
228 ##############################################################
229 ## default : make $LIBS_TO_BUILD libs and $EXEC_TO_BUILD exec
230 ##############################################################
231 # main target
232 all::
233 @echo "---------------------------------------------------"
234 @echo "You can choose either:"
235 @echo "'make libs' to build the libraries ($(LIBS_TO_BUILD))."
236 @echo "'make install-libs' to install them (if necessary)."
237 @echo "'make [all]' to build the libs, install them, and build the executables (this is the default)."
238 @echo "'make install' to build and install everything."
239 @echo "---------------------------------------------------"
240 all:: $(LIBS_TO_BUILD:%=%libs)
241 all:: $(LIBS_TO_BUILD:%=%install-libs)
242 all:: $(EXEC_TO_BUILD:%=%exec)
243 @echo "---------------------------------------------------"
244 @echo "Type 'make install' to install everything"
245 @echo "---------------------------------------------------"
247 $(INT_BITS):
248 $(MAKE) "BITS=$(INT_BITS)" "AFLAGS=$(INT_AFLAGS)" default
250 $(LONG_BITS):
251 $(MAKE) "BITS=$(LONG_BITS)" "AFLAGS=$(LONG_AFLAGS)" default
253 $(GMP_BITS):
254 $(MAKE) "BITS=$(GMP_BITS)" "AFLAGS=$(GMP_AFLAGS)" default
256 typecheck:
257 $(MAKE) "BITS=$(CHECK_BITS)" "AFLAGS=$(CHECK_AFLAGS)" default
259 ###########################################################
260 ## called from all : make lib, install it, and build executables
261 ###########################################################
262 default:: libs
263 @echo "---------------------------------------------------"
264 @echo "Successfully built Library."
265 @echo "The lib now needs to be installed in order to build executables"
266 @echo "---------------------------------------------------"
267 default:: $(INSTALL_LIB)
268 @echo "---------------------------------------------------"
269 @echo "Successfully installed Library."
270 @echo "---------------------------------------------------"
271 default:: allexec
273 ###########################################################
274 ## Install/UnInstall
275 ###########################################################
276 # main target
277 install:: $(LIBS_TO_BUILD:%=%install-libs) \
278 install-include install-man install-docs
279 install:: $(EXEC_TO_BUILD:%=%install-exec) \
281 # main target
282 $(INT_BITS)install-libs:
283 $(MAKE) "BITS=$(INT_BITS)" "AFLAGS=$(INT_AFLAGS)" install-libs
285 # main target
286 $(LONG_BITS)install-libs:
287 $(MAKE) "BITS=$(LONG_BITS)" "AFLAGS=$(LONG_AFLAGS)" install-libs
289 #main target
290 $(GMP_BITS)install-libs:
291 $(MAKE) "BITS=$(GMP_BITS)" "AFLAGS=$(GMP_AFLAGS)" install-libs
293 install-libs: $(INSTALL_LIB)
294 install-shared: lib-shared
295 $(mkinstalldirs) $(LIBDIR)
296 $(INSTALL) $(OBJ_DIR)/$(PSHARED) $(LIBDIR)/
297 $(RM) $(LIBDIR)/libpolylib$(BITS).$(SHEXT)
298 $(LN_S) $(LIBDIR)/$(PSHARED) $(LIBDIR)/libpolylib$(BITS).$(SHEXT)
299 $(LDCONFIG)
300 install-static: lib-static
301 $(mkinstalldirs) $(LIBDIR)
302 $(INSTALL) $(OBJ_DIR)/$(PSTATIC) $(LIBDIR)/
303 $(RM) $(LIBDIR)/libpolylib$(BITS).a
304 $(LN_S) $(LIBDIR)/$(PSTATIC) $(LIBDIR)/libpolylib$(BITS).a
306 install-include:
307 $(mkinstalldirs) $(INCLUDEDIR)/polylib
308 $(INSTALL_DATA) ./include/polylib/*.h $(INCLUDEDIR)/polylib
310 install-man:
311 # to be done...
312 install-docs:
313 $(mkinstalldirs) $(DOCSDIR)
314 $(INSTALL_DATA) doc/* $(DOCSDIR)/
315 $(mkinstalldirs) $(DOCSDIR)/examples/ehrhart
316 $(INSTALL_DATA) Test/ehrhart/*.in $(DOCSDIR)/examples/ehrhart
318 # EXEC
319 # main target
320 $(INT_BITS)install-exec::
321 $(MAKE) "BITS=$(INT_BITS)" "AFLAGS=$(INT_AFLAGS)" install-exec
323 # main target
324 $(LONG_BITS)install-exec::
325 $(MAKE) "BITS=$(LONG_BITS)" "AFLAGS=$(LONG_AFLAGS)" install-exec
327 # main target
328 $(GMP_BITS)install-exec::
329 $(MAKE) "BITS=$(GMP_BITS)" "AFLAGS=$(GMP_AFLAGS)" install-exec
331 install-exec: $(POLY_EXEC)
332 $(mkinstalldirs) $(BINDIR)
333 $(INSTALL) $(POLY_EXEC) $(BINDIR)
335 #### Link the executables to INT or to LONG executables with the extra suffix
337 # main target
338 $(INT_BITS)ln-exec:
339 $(MAKE) "BITS=$(INT_BITS)" "AFLAGS=$(INT_AFLAGS)" ln-exec
340 # main target
341 $(LONG_BITS)ln-exec:
342 $(MAKE) "BITS=$(LONG_BITS)" "AFLAGS=$(LONG_AFLAGS)" ln-exec
343 # main target
344 $(GMP_BITS)ln-exec:
345 $(MAKE) "BITS=$(GMP_BITS)" "AFLAGS=$(GMP_AFLAGS)" ln-exec
346 ln-exec: $(PEXEC:%=ln-%)
347 $(PEXEC:%=ln-%):
348 (cd $(BINDIR); $(LN_S) $(@:ln-%=%$(EXEC_EXTRA_SUFFIX)) $(@:ln-%=%) )
350 # UNINSTALL-ALL
351 # main target
352 uninstall:: uninstall-libs uninstall-exec uninstall-man uninstall-docs
353 uninstall-libs:
354 $(RM) $(LIBDIR)/libpolylib*
355 $(RM) -r $(INCLUDEDIR)/polylib
356 uninstall-exec:
357 ( cd $(BINDIR) ; $(RM) $(PEXEC:%=%*) )
358 uninstall-man:
360 uninstall-docs:
361 $(RM) -r $(DOCSDIR)
363 ###########################################################
364 ## Libs : static and shared
365 ###########################################################
366 libs: $(LIBS_TO_BUILD:%=%libs)
368 # main target
369 $(INT_BITS)libs:
370 $(MAKE) "BITS=$(INT_BITS)" "AFLAGS=$(INT_AFLAGS)" mlibs
372 # main target
373 $(LONG_BITS)libs:
374 $(MAKE) "BITS=$(LONG_BITS)" "AFLAGS=$(LONG_AFLAGS)" mlibs
376 # main target
377 $(GMP_BITS)libs:
378 $(MAKE) "BITS=$(GMP_BITS)" "AFLAGS=$(GMP_AFLAGS)" mlibs
381 # local targets
382 mlibs: lib-shared lib-static
384 lib-shared:: $(OBJ_DIR)
385 lib-shared:: $(OBJ_DIR)/$(PSHARED)
386 lib-static:: $(OBJ_DIR)
387 lib-static:: $(OBJ_DIR)/$(PSTATIC)
388 $(RM) $(OBJ_DIR)/libpolylib$(BITS).a
389 $(LN_S) $(PSTATIC) $(OBJ_DIR)/libpolylib$(BITS).a
391 $(OBJ_DIR)/$(PSTATIC): $(PHEADERS) $(LIB_OBJECTS)
392 (cd $(ARITH_DIR) ; $(MAKE) "CFLAGS=$(CFLAGS)" "OBJ_DIR=$(OBJ_DIR)" )
393 $(RM) $(OBJ_DIR)/$(PSTATIC)
394 cp $(ARITH_DIR)/$(OBJ_DIR)/arithmetique.a $(OBJ_DIR)/$(PSTATIC)
395 $(AR) -q $(OBJ_DIR)/$(PSTATIC) $(LIB_OBJECTS)
396 @$(RANLIB) $(OBJ_DIR)/$(PSTATIC)
398 $(OBJ_DIR)/$(PSHARED): $(LIB_OBJECTS)
399 (cd $(ARITH_DIR) ; $(MAKE) "CFLAGS=$(CFLAGS)" "OBJ_DIR=$(OBJ_DIR)" )
400 $(LD) $(SHAREDLIB_FLAG) -o $(OBJ_DIR)/$(PSHARED) $(LIB_OBJECTS) \
401 $(ARITH_DIR)/$(OBJ_DIR)/arithmetique.a
403 ###########################################################
404 ## Cleans
405 ###########################################################
406 # main target
407 clean:
408 (cd $(ARITH_DIR) ; $(MAKE) "OBJ_DIR=$(OBJ_DIR)" clean)
409 $(RM) -r Obj.*
410 distclean: clean
411 $(RM) config.cache config.log config.status
413 ###########################################################
414 ## Tests
415 ###########################################################
417 # main target
418 test: $(EXEC_TO_BUILD:%=%test)
420 $(INT_BITS)test:
421 $(MAKE) "BITS=$(INT_BITS)" "AFLAGS=$(INT_AFLAGS)" alltests
422 $(LONG_BITS)test:
423 $(MAKE) "BITS=$(LONG_BITS)" "AFLAGS=$(LONG_AFLAGS)" alltests
424 $(GMP_BITS)test:
425 $(MAKE) "BITS=$(GMP_BITS)" "AFLAGS=$(GMP_AFLAGS)" gmptests
427 alltests:
428 @echo
429 @echo ----------------------------------------------------
430 @echo ------------------- $(BITS) BITS TESTS ------------------
431 @echo ----------------------------------------------------
432 (cd Test ; $(MAKE) \
433 "OBJ_DIR=../$(OBJ_DIR)" "EXEC_EXTRA_SUFFIX=$(EXEC_EXTRA_SUFFIX)" )
435 gmptests:
436 @echo
437 @echo ----------------------------------------------------
438 @echo --------------GNU MULTI-PRECISION TESTS ------------
439 @echo ----------------------------------------------------
440 (cd Test ; $(MAKE) \
441 "OBJ_DIR=../$(OBJ_DIR)" "EXEC_EXTRA_SUFFIX=$(EXEC_EXTRA_SUFFIX)" )
443 longtest: $(EXEC_TO_BUILD:%=%longtest)
445 $(INT_BITS)longtest:
446 $(MAKE) "BITS=$(INT_BITS)" "AFLAGS=$(INT_AFLAGS)" alllongtests
447 $(LONG_BITS)longtest:
448 $(MAKE) "BITS=$(LONG_BITS)" "AFLAGS=$(LONG_AFLAGS)" alllongtests
449 $(GMP_BITS)longtest:
450 $(MAKE) "BITS=$(GMP_BITS)" "AFLAGS=$(GMP_AFLAGS)" gmplongtests
452 alllongtests:
453 @echo
454 @echo ----------------------------------------------------
455 @echo --------------- $(BITS) BITS LONG TESTS ------------
456 @echo ----------------------------------------------------
457 (cd Test ; $(MAKE) "OBJ_DIR=../$(OBJ_DIR)" \
458 "EXEC_EXTRA_SUFFIX=$(EXEC_EXTRA_SUFFIX)" long_tests)
459 gmplongtests:
460 @echo
461 @echo ----------------------------------------------------
462 @echo ------------GNU MULTI-PRECISION LONG TESTS ---------
463 @echo ----------------------------------------------------
464 (cd Test ; $(MAKE) "OBJ_DIR=../$(OBJ_DIR)" \
465 "EXEC_EXTRA_SUFFIX=$(EXEC_EXTRA_SUFFIX)" long_tests)
468 ########################################################################
469 ## Lib Objects
470 ########################################################################
471 $(OBJ_DIR):
472 mkdir $(OBJ_DIR)
474 $(LIB_OBJECTS): $(OBJ_DIR)/%.o:$(POLYLIB_SRC)/%.c $(PHEADERS)
475 $(CC) -c $(CFLAGS) $(POLYLIB_SRC)/$*.c -o $(OBJ_DIR)/$*.o
477 #$(PHEADERS): $(LIB_CFILES)
478 # -mv -f $@ $@.old
479 # cextract +a +w72 $(EXTRA_INCLUDES) -H_$*_H_ -o $@ $(@:.h=.c)
481 ########################################################################
482 ## Executables
483 ########################################################################
484 $(INT_BITS)exec::
485 $(MAKE) "BITS=$(INT_BITS)" "AFLAGS=$(INT_AFLAGS)" allexec
486 $(LONG_BITS)exec::
487 $(MAKE) "BITS=$(LONG_BITS)" "AFLAGS=$(LONG_AFLAGS)" allexec
488 $(GMP_BITS)exec::
489 $(MAKE) "BITS=$(GMP_BITS)" "AFLAGS=$(GMP_AFLAGS)" "EXTRA_LIBS=$(EXTRA_LIBS)" allexec
491 allexec:: $(OBJ_DIR)
492 allexec:: $(POLY_EXEC)
493 @echo "---------------------------------------------------"
494 @echo "Successfully built $(BITS) bits executables."
495 @echo "---------------------------------------------------"
496 @echo "Type 'make test' to test the library"
497 @echo "Type 'make longtest' to further test the library (slower)"
499 # constraints2polyhedron
500 $(OBJ_DIR)/c2p$(EXEC_EXTRA_SUFFIX): $(OBJ_DIR)/c2p.o $(LIB)
501 $(LD) $(LDFLAGS) -o $@ $(OBJ_DIR)/c2p.o \
502 $(EXEC_EXTRA_LIBS) $(EXTRA_LIBS)
503 $(OBJ_DIR)/c2p.o: $(POLYLIB_SRC)/c2p.c $(PHEADERS)
504 $(CC) -c $(CFLAGS) $(POLYLIB_SRC)/c2p.c -o $(OBJ_DIR)/c2p.o
506 # rays2polyhedron
507 $(OBJ_DIR)/r2p$(EXEC_EXTRA_SUFFIX): $(OBJ_DIR)/r2p.o $(LIB)
508 $(LD) $(LDFLAGS) -o $@ $(OBJ_DIR)/r2p.o \
509 $(EXEC_EXTRA_LIBS) $(EXTRA_LIBS)
510 $(OBJ_DIR)/r2p.o: $(POLYLIB_SRC)/r2p.c $(PHEADERS)
511 $(CC) -c $(CFLAGS) $(POLYLIB_SRC)/r2p.c -o $(OBJ_DIR)/r2p.o
513 # find vertices
514 $(OBJ_DIR)/findv$(EXEC_EXTRA_SUFFIX): $(OBJ_DIR)/findv.o $(LIB)
515 $(LD) $(LDFLAGS) -o $@ $(OBJ_DIR)/findv.o \
516 $(EXEC_EXTRA_LIBS) $(EXTRA_LIBS)
517 $(OBJ_DIR)/findv.o: $(POLYLIB_SRC)/findv.c $(PHEADERS)
518 $(CC) -c $(CFLAGS) $(POLYLIB_SRC)/findv.c -o $(OBJ_DIR)/findv.o
520 # find validity domains+vertices
521 $(OBJ_DIR)/pp$(EXEC_EXTRA_SUFFIX): $(OBJ_DIR)/pp.o $(LIB)
522 $(LD) $(LDFLAGS) -o $@ $(OBJ_DIR)/pp.o \
523 $(EXEC_EXTRA_LIBS) $(EXTRA_LIBS)
524 $(OBJ_DIR)/pp.o: $(POLYLIB_SRC)/pp.c $(PHEADERS)
525 $(CC) -c $(CFLAGS) $(POLYLIB_SRC)/pp.c -o $(OBJ_DIR)/pp.o
528 # computes vertices, validity domains and ehrhart polynomial
529 $(OBJ_DIR)/ehrhart$(EXEC_EXTRA_SUFFIX): $(POLYLIB_SRC)/ehrhart.c \
530 $(LIB) $(PHEADERS)
531 $(CC) $(LDFLAGS) $(CFLAGS) -DEMAIN -DEP_EVALUATION -o $@ \
532 $(EHRHART_MP:%=$(POLYLIB_SRC)/%) $(POLYLIB_SRC)/ehrhart.c \
533 $(EXEC_EXTRA_LIBS) $(EXTRA_LIBS)
535 # verifies the ehrhart polynomial is correct
536 $(OBJ_DIR)/verif_ehrhart$(EXEC_EXTRA_SUFFIX): $(POLYLIB_SRC)/verif_ehrhart.c \
537 $(LIB) $(PHEADERS)
538 $(CC) $(LDFLAGS) $(CFLAGS) -o $@ \
539 $(POLYLIB_SRC)/verif_ehrhart.c \
540 $(EXEC_EXTRA_LIBS) $(EXTRA_LIBS)
542 # misc : disjoint and convex union of polyhedra (cf. sources)
543 $(OBJ_DIR)/union_disjointe$(EXEC_EXTRA_SUFFIX): $(PHEADERS) $(LIB) \
544 $(POLYLIB_SRC)/union_disjointe.c
545 $(CC) $(LDFLAGS) $(CFLAGS) -o $@ \
546 $(POLYLIB_SRC)/union_disjointe.c $(EXEC_EXTRA_LIBS) $(EXTRA_LIBS)
547 $(OBJ_DIR)/union_convex$(EXEC_EXTRA_SUFFIX): $(PHEADERS) $(LIB) \
548 $(POLYLIB_SRC)/union_convex.c
549 $(CC) $(LDFLAGS) $(CFLAGS) -o $@ \
550 $(POLYLIB_SRC)/union_convex.c $(EXEC_EXTRA_LIBS) $(EXTRA_LIBS)
552 # original PolyLib1 tests
553 $(OBJ_DIR)/testlib$(EXEC_EXTRA_SUFFIX): $(POLYLIB_SRC)/testlib.c $(LIB)
554 $(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(POLYLIB_SRC)/testlib.c \
555 $(EXEC_EXTRA_LIBS) $(EXTRA_LIBS)
556 $(OBJ_DIR)/polytest$(EXEC_EXTRA_SUFFIX): $(POLYLIB_SRC)/polytest.c $(LIB)
557 $(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(POLYLIB_SRC)/polytest.c \
558 $(EXEC_EXTRA_LIBS) $(EXTRA_LIBS)
560 # original Zpolyhedron tests
561 $(OBJ_DIR)/Zpolytest$(EXEC_EXTRA_SUFFIX): $(POLYLIB_SRC)/Zpolytest.c $(LIB)
562 $(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(POLYLIB_SRC)/Zpolytest.c \
563 $(EXEC_EXTRA_LIBS) $(EXTRA_LIBS)
565 $(OBJ_DIR)/example$(EXEC_EXTRA_SUFFIX): $(POLYLIB_SRC)/example.c $(LIB)
566 $(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(POLYLIB_SRC)/example.c \
567 $(EXEC_EXTRA_LIBS) $(EXTRA_LIBS)
569 ########################################################################
570 vars.mk: vars.mk.in
571 ./configure
573 ########################################################################
574 ## END
575 ########################################################################