3 # Patch to cudd build system to build everything with libtool, supporting
4 # shared libraries. Also all libraries are combined into a single one.
6 # This script applies the patch, builds cudd, and, assuming there are no
7 # errors, reverses the patch.
9 # -- Morgan Deters <mdeters@cs.nyu.edu> Wed, 13 Jul 2011 18:03:11 -0400
13 if [ $# -ne 1 -o "$1" = -h -o "$1" = -help -o "$1" = --help ]; then
14 echo "usage: $(basename "$0") cudd-dir" >&2
18 patch="$(pwd)/$(basename "$0")"
19 if [ ! -r "$patch" ]; then
20 echo "error: can't read patch at \`$patch'" >&2
25 arch
=$
(..
/config
/config.guess | cut
-f1 -d-)
27 i?
86) XCFLAGS
='-mtune=pentium4 -malign-double -DHAVE_IEEE_754 -DBSD' ;;
28 x86_64
) XCFLAGS
='-mtune=native -DHAVE_IEEE_754 -DBSD -DSIZEOF_VOID_P=8 -DSIZEOF_LONG=8' ;;
41 datadir
="$prefix/share"
42 includedir
="$prefix/include"
44 mandir
="$datadir/man/man1"
49 make "XCFLAGS=$XCFLAGS" "CC=libtool --mode=compile gcc" "CPP=libtool --mode=compile g++" libdir
="$libdir" version_info
="$version_info" DDDEBUG
= MTRDEBUG
= ICFLAGS
=-O2
51 libtool
--mode=install cp libcudd.la
"$libdir/libcudd.la"
52 libtool
--mode=install cp libcuddxx.la
"$libdir/libcuddxx.la"
53 libtool
--mode=install cp libdddmp.la
"$libdir/libdddmp.la"
54 libtool
--finish "$libdir"
55 patch -p1 -R < "$patch"
66 - @
for dir
in $
(DIRS
); do \
67 + +@
for dir
in $
(BDIRS
) obj
; do \
69 echo Making $
$dir ...
; \
70 - make CC
=$
(CC
) RANLIB
=$
(RANLIB
) MFLAG
= MNEMLIB
= ICFLAGS
="$(ICFLAGS)" XCFLAGS
="$(XCFLAGS)" DDDEBUG
="$(DDDEBUG)" MTRDEBUG
="$(MTRDEBUG)" LDFLAGS
="$(LDFLAGS)" PURE
="$(PURE)" EXE
="$(EXE)" )\
71 + make CC
="$(CC)" RANLIB
="$(RANLIB)" MFLAG
= MNEMLIB
= ICFLAGS
="$(ICFLAGS)" XCFLAGS
="$(XCFLAGS)" DDDEBUG
="$(DDDEBUG)" MTRDEBUG
="$(MTRDEBUG)" LDFLAGS
="$(LDFLAGS)" PURE
="$(PURE)" EXE
="$(EXE)" )\
73 + libtool
--mode=link gcc
-rpath "$(libdir)" -version-info "$(version_info)" -o libcudd.la cudd
/libcudd.la mtr
/libmtr.la epd
/libepd.la util
/libutil.la st
/libst.la
-lm
74 + libtool
--mode=link gcc
-rpath "${libdir}" -version-info "$(version_info)" -o libdddmp.la dddmp
/libdddmp.la
75 + libtool
--mode=link g
++ -rpath "$(libdir)" -version-info "$(version_info)" -o libcuddxx.la obj
/libobj.la
-lcudd
77 + make CC
="$(CC)" RANLIB
="$(RANLIB)" MFLAG
= MNEMLIB
= ICFLAGS
="$(ICFLAGS)" XCFLAGS
="$(XCFLAGS)" DDDEBUG
="$(DDDEBUG)" MTRDEBUG
="$(MTRDEBUG)" LDFLAGS
="$(LDFLAGS)" PURE
="$(PURE)" EXE
="$(EXE)" )
82 echo Cleaning $
$dir ...
; \
83 make -s EXE
="$(EXE)" distclean
) \
85 + rm -f libcudd
* libdddmp
*
91 cuddZddPort.c cuddZddReord.c cuddZddSetop.c cuddZddSymm.c \
93 PHDR
= cudd.h cuddInt.h
95 +POBJ
= $
(PSRC
:.c
=.lo
)
97 TARGET
= test$
(P
)$
(EXE
)
101 #------------------------------------------------------
107 + libtool
--mode=link gcc
-o $@ $?
109 -.c.o
: $
(PSRC
) $
(PHDR
)
110 - $
(CC
) -c $
< -I$
(INCLUDE
) $
(CFLAGS
) $
(DDDEBUG
)
112 + $
(CC
) -c -o $@ $
< -I$
(INCLUDE
) $
(CFLAGS
) $
(DDDEBUG
)
114 optimize_dec
: lib$
(P
).b
117 programs
: $
(TARGET
) $
(TARGETu
) lintpgm
120 - rm -f *.o
*.u mon.out gmon.out
*.pixie
*.Addrs
*.Counts mnem.
* \
121 + rm -f *.o
*.lo
*.u mon.out gmon.out
*.pixie
*.Addrs
*.Counts mnem.
* \
122 .pure core
*.warnings
125 - rm -f $
(TARGET
) $
(TARGETu
) lib
*.a lib$
(P
).b llib-l$
(P
).
ln \
126 + rm -f $
(TARGET
) $
(TARGETu
) lib
*.a lib
*.la lib$
(P
).b llib-l$
(P
).
ln \
127 *.bak
*~ tags .gdb_history
*.qv
*.qx
132 dddmpStoreMisc.c dddmpUtil.c dddmpBinary.c dddmpConvert.c \
134 PHDR
= dddmp.h dddmpInt.h $
(INCLUDE
)/cudd.h $
(INCLUDE
)/cuddInt.h
135 -POBJ = $
(PSRC
:.c
=.o
)
136 +POBJ
= $
(PSRC
:.c
=.lo
)
138 TARGET
= test$
(P
)$
(EXE
)
140 @@
-182,12 +182,11 @@
141 $
(WHERE
)/mtr
/llib-lmtr.
ln $
(WHERE
)/st
/llib-lst.
ln \
142 $
(WHERE
)/util
/llib-lutil.
ln
148 + libtool
--mode=link gcc
-o $@ $?
151 - $
(CC
) -c $
< -I$
(INCLUDE
) $
(ICFLAGS
) $
(XCFLAGS
) $
(DDDEBUG
) $
(MTRDEBUG
) $
(DDDMPDEBUG
) $
(LDFLAGS
)
153 + $
(CC
) -c -o $@ $
< -I$
(INCLUDE
) $
(ICFLAGS
) $
(XCFLAGS
) $
(DDDEBUG
) $
(MTRDEBUG
) $
(DDDMPDEBUG
) $
(LDFLAGS
)
155 optimize_dec
: lib$
(P
).b
157 @@
-231,12 +230,13 @@
158 #----------------------------------------------------------------------------#
161 - rm -f *.o
*.u mon.out gmon.out
*.pixie
*.Addrs
*.Counts mnem.
* \
162 + rm -f *.o
*.lo
*.u mon.out gmon.out
*.pixie
*.Addrs
*.Counts mnem.
* \
163 .pure core
*.warnings
166 - rm -f $
(TARGET
) $
(TARGETu
) lib
*.a lib$
(P
).b llib-l$
(P
).
ln \
167 + rm -f $
(TARGET
) $
(TARGETu
) lib
*.a lib
*.la lib$
(P
).b llib-l$
(P
).
ln \
168 *.bak
*~ tags .gdb_history
*.qv
*.qx
179 -POBJ = $
(PSRC
:.c
=.o
)
180 +POBJ
= $
(PSRC
:.c
=.lo
)
186 #---------------------------
192 + libtool
--mode=link gcc
-o $@ $?
194 -.c.o
: $
(PSRC
) $
(PHDR
)
195 - $
(CC
) -c $
< -I$
(INCLUDE
) $
(CFLAGS
)
197 + $
(CC
) -c -o $@ $
< -I$
(INCLUDE
) $
(CFLAGS
)
199 optimize_dec
: lib$
(P
).b
202 all
: lib$
(P
).a lib$
(P
).b llib-l$
(P
).
ln tags
205 - rm -f *.o
*.u .pure
*.warnings
206 + rm -f *.o
*.lo
*.u .pure
*.warnings
209 - rm -f lib
*.a lib$
(P
).b llib-l$
(P
).
ln tags
*~
*.bak
*.qv
*.qx
210 + rm -f lib
*.a lib
*.la lib$
(P
).b llib-l$
(P
).
ln tags
*~
*.bak
*.qv
*.qx
216 PSRC
= mtrBasic.c mtrGroup.c
218 -POBJ = $
(PSRC
:.c
=.o
)
219 +POBJ
= $
(PSRC
:.c
=.lo
)
225 #---------------------------
231 + libtool
--mode=link gcc
-o $@ $?
233 -.c.o
: $
(PSRC
) $
(PHDR
)
234 - $
(CC
) -c $
< -I$
(INCLUDE
) $
(CFLAGS
) $
(MTRDEBUG
)
236 + $
(CC
) -c -o $@ $
< -I$
(INCLUDE
) $
(CFLAGS
) $
(MTRDEBUG
)
238 optimize_dec
: lib$
(P
).b
241 cc
-O3 $
(XCFLAGS
) $
(LDFLAGS
) -o $@ $
(UBJ
) $
(BLIBS
) -lm
244 - rm -f *.o
*.u mon.out gmon.out
*.pixie
*.Addrs
*.Counts mnem.
* \
245 + rm -f *.o
*.lo
*.u mon.out gmon.out
*.pixie
*.Addrs
*.Counts mnem.
* \
246 .pure core
*.warnings
249 - rm -f $
(TARGET
) $
(TARGETu
) lib
*.a lib$
(P
).b llib-l$
(P
).
ln \
250 + rm -f $
(TARGET
) $
(TARGETu
) lib
*.a lib
*.la lib$
(P
).b llib-l$
(P
).
ln \
251 *.bak
*~ tags
*.qv
*.qx
253 --- a
/nanotrav
/Makefile
254 +++ b
/nanotrav
/Makefile
257 INCLUDE
= $
(WHERE
)/include
259 -LIBS = $
(WHERE
)/dddmp
/libdddmp.a $
(WHERE
)/cudd
/libcudd.a \
260 - $
(WHERE
)/mtr
/libmtr.a $
(WHERE
)/st
/libst.a $
(WHERE
)/util
/libutil.a \
261 - $
(WHERE
)/epd
/libepd.a
262 +LIBS
= $
(WHERE
)/libcudd.la $
(WHERE
)/libdddmp.la
265 #MNEMLIB = $(WHERE)/mnemosyne/libmnem.a
267 HDR
= bnet.h ntr.h $
(WHERE
)/include
/dddmp.h $
(WHERE
)/include
/cudd.h \
268 $
(WHERE
)/include
/cuddInt.h
276 #------------------------------------------------------
278 $
(TARGET
): $
(SRC
) $
(OBJ
) $
(HDR
) $
(LIBS
) $
(MNEMLIB
)
279 - $
(PURE
) $
(CC
) $
(CFLAGS
) $
(LDFLAGS
) -o $@ $
(OBJ
) $
(LIBS
) $
(MNEMLIB
) -lm
280 + libtool
--mode=link gcc $
(CFLAGS
) $
(LDFLAGS
) -o $@ $
(OBJ
) $
(LIBS
) $
(MNEMLIB
) -lm
283 - $
(CC
) -c $
< -I$
(INCLUDE
) $
(CFLAGS
) $
(DDDEBUG
)
285 + $
(CC
) -c -o $@ $
< -I$
(INCLUDE
) $
(CFLAGS
) $
(DDDEBUG
)
287 # if the header files change, recompile
293 - rm -f *.o
*.u mon.out gmon.out
*.pixie
*.Addrs
*.Counts mnem.
* \
294 + rm -f *.o
*.lo
*.u mon.out gmon.out
*.pixie
*.Addrs
*.Counts mnem.
* \
295 .pure core
*.warnings
298 rm -f $
(TARGET
) $
(TARGETu
) *.bak
*~ .gdb_history
*.qv
*.qx
305 PHDR
= cuddObj.hh $
(INCLUDE
)/cudd.h
306 -POBJ = $
(PSRC
:.cc
=.o
)
307 +POBJ
= $
(PSRC
:.cc
=.lo
)
308 PUBJ
= $
(PSRC
:.cc
=.u
)
309 TARGET
= test$
(P
)$
(EXE
)
313 #------------------------------------------------------
319 + libtool
--mode=link g
++ -o $@ $?
322 - $
(CPP
) -c $
< -I$
(INCLUDE
) $
(CFLAGS
) $
(DDDEBUG
)
324 + $
(CPP
) -c -o $@ $
< -I$
(INCLUDE
) $
(CFLAGS
) $
(DDDEBUG
)
326 optimize_dec
: lib$
(P
).b
329 programs
: $
(TARGET
) $
(TARGETu
) lintpgm
332 - rm -f *.o
*.u mon.out gmon.out
*.pixie
*.Addrs
*.Counts mnem.
* \
333 + rm -f *.o
*.lo
*.u mon.out gmon.out
*.pixie
*.Addrs
*.Counts mnem.
* \
334 .pure core
*.warnings
337 - rm -f $
(TARGET
) $
(TARGETu
) lib
*.a lib$
(P
).b llib-l$
(P
).
ln \
338 + rm -f $
(TARGET
) $
(TARGETu
) lib
*.a lib
*.la lib$
(P
).b llib-l$
(P
).
ln \
339 *.bak
*~ tags .gdb_history
*.qv
*.qx
347 -POBJ = $
(PSRC
:.c
=.o
)
348 +POBJ
= $
(PSRC
:.c
=.lo
)
354 #---------------------------
360 + libtool
--mode=link gcc
-o $@ $?
363 - $
(CC
) -c $
< -I$
(INCLUDE
) $
(CFLAGS
)
365 + $
(CC
) -c -o $@ $
< -I$
(INCLUDE
) $
(CFLAGS
)
367 optimize_dec
: lib$
(P
).b
370 all
: lib$
(P
).a lib$
(P
).b llib-l$
(P
).
ln tags
373 - rm -f *.o
*.u .pure
*.warnings
374 + rm -f *.o
*.lo
*.u .pure
*.warnings
377 - rm -f lib
*.a lib$
(P
).b llib-l$
(P
).
ln tags
*~
*.bak
*.qv
*.qx
378 + rm -f lib
*.a lib
*.la lib$
(P
).b llib-l$
(P
).
ln tags
*~
*.bak
*.qv
*.qx
383 PSRC
= cpu_time.c cpu_stats.c getopt.c safe_mem.c strsav.c texpand.c \
384 ptime.c prtime.c pipefork.c pathsearch.c stub.c \
385 tmpfile.c datalimit.c
386 -POBJ = $
(PSRC
:.c
=.o
)
387 +POBJ
= $
(PSRC
:.c
=.lo
)
392 INCLUDE
= $
(WHERE
)/include
398 + libtool
--mode=link gcc
-o $@ $?
401 - $
(CC
) -c $
< -I$
(INCLUDE
) $
(FLAGS
) $
(CFLAGS
)
403 + $
(CC
) -c -o $@ $
< -I$
(INCLUDE
) $
(FLAGS
) $
(CFLAGS
)
405 optimize_dec
: lib$
(P
).b
408 all
: lib$
(P
).a lib$
(P
).b llib-l$
(P
).
ln tags
411 - rm -f *.o
*.u core
*.warnings
412 + rm -f *.o
*.lo
*.u core
*.warnings
415 - rm -f lib$
(P
).a lib$
(P
).b llib-l$
(P
).
ln tags
*.bak
*~ .pure
416 + rm -f lib$
(P
).a lib$
(P
).la lib$
(P
).b llib-l$
(P
).
ln tags
*.bak
*~ .pure