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
23 if ! expr "$1" : / &>/dev
/null
; then
24 echo "error: must specify an absolute path to cudd sources" >&2
29 arch
=$
(..
/config
/config.guess | cut
-f1 -d-)
31 i?
86) XCFLAGS
='-mtune=pentium4 -malign-double -DHAVE_IEEE_754 -DBSD' ;;
32 x86_64
) XCFLAGS
='-mtune=native -DHAVE_IEEE_754 -DBSD -DSIZEOF_VOID_P=8 -DSIZEOF_LONG=8' ;;
45 datadir
="$prefix/share"
46 includedir
="$prefix/include"
48 mandir
="$datadir/man/man1"
53 make "XCFLAGS=$XCFLAGS" "CC=libtool --mode=compile gcc" "CPP=libtool --mode=compile g++" libdir
="$libdir" version_info
="$version_info" DDDEBUG
= MTRDEBUG
= ICFLAGS
=-O2
55 libtool
--mode=install cp libcudd.la
"$libdir/libcudd.la"
56 libtool
--mode=install cp libcuddxx.la
"$libdir/libcuddxx.la"
57 libtool
--mode=install cp libdddmp.la
"$libdir/libdddmp.la"
58 libtool
--finish "$libdir"
59 patch -p1 -R < "$patch"
70 - @
for dir
in $
(DIRS
); do \
71 + +@
for dir
in $
(BDIRS
) obj
; do \
73 echo Making $
$dir ...
; \
74 - make CC
=$
(CC
) RANLIB
=$
(RANLIB
) MFLAG
= MNEMLIB
= ICFLAGS
="$(ICFLAGS)" XCFLAGS
="$(XCFLAGS)" DDDEBUG
="$(DDDEBUG)" MTRDEBUG
="$(MTRDEBUG)" LDFLAGS
="$(LDFLAGS)" PURE
="$(PURE)" EXE
="$(EXE)" )\
75 + make CC
="$(CC)" RANLIB
="$(RANLIB)" MFLAG
= MNEMLIB
= ICFLAGS
="$(ICFLAGS)" XCFLAGS
="$(XCFLAGS)" DDDEBUG
="$(DDDEBUG)" MTRDEBUG
="$(MTRDEBUG)" LDFLAGS
="$(LDFLAGS)" PURE
="$(PURE)" EXE
="$(EXE)" )\
77 + 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
78 + libtool
--mode=link gcc
-rpath "${libdir}" -version-info "$(version_info)" -o libdddmp.la dddmp
/libdddmp.la
79 + libtool
--mode=link g
++ -rpath "$(libdir)" -version-info "$(version_info)" -o libcuddxx.la obj
/libobj.la
-lcudd
81 + make CC
="$(CC)" RANLIB
="$(RANLIB)" MFLAG
= MNEMLIB
= ICFLAGS
="$(ICFLAGS)" XCFLAGS
="$(XCFLAGS)" DDDEBUG
="$(DDDEBUG)" MTRDEBUG
="$(MTRDEBUG)" LDFLAGS
="$(LDFLAGS)" PURE
="$(PURE)" EXE
="$(EXE)" )
86 echo Cleaning $
$dir ...
; \
87 make -s EXE
="$(EXE)" distclean
) \
89 + rm -f libcudd
* libdddmp
*
95 cuddZddPort.c cuddZddReord.c cuddZddSetop.c cuddZddSymm.c \
97 PHDR
= cudd.h cuddInt.h
99 +POBJ
= $
(PSRC
:.c
=.lo
)
101 TARGET
= test$
(P
)$
(EXE
)
105 #------------------------------------------------------
111 + libtool
--mode=link gcc
-o $@ $?
113 -.c.o
: $
(PSRC
) $
(PHDR
)
114 - $
(CC
) -c $
< -I$
(INCLUDE
) $
(CFLAGS
) $
(DDDEBUG
)
116 + $
(CC
) -c -o $@ $
< -I$
(INCLUDE
) $
(CFLAGS
) $
(DDDEBUG
)
118 optimize_dec
: lib$
(P
).b
121 programs
: $
(TARGET
) $
(TARGETu
) lintpgm
124 - rm -f *.o
*.u mon.out gmon.out
*.pixie
*.Addrs
*.Counts mnem.
* \
125 + rm -f *.o
*.lo
*.u mon.out gmon.out
*.pixie
*.Addrs
*.Counts mnem.
* \
126 .pure core
*.warnings
129 - rm -f $
(TARGET
) $
(TARGETu
) lib
*.a lib$
(P
).b llib-l$
(P
).
ln \
130 + rm -f $
(TARGET
) $
(TARGETu
) lib
*.a lib
*.la lib$
(P
).b llib-l$
(P
).
ln \
131 *.bak
*~ tags .gdb_history
*.qv
*.qx
136 dddmpStoreMisc.c dddmpUtil.c dddmpBinary.c dddmpConvert.c \
138 PHDR
= dddmp.h dddmpInt.h $
(INCLUDE
)/cudd.h $
(INCLUDE
)/cuddInt.h
139 -POBJ = $
(PSRC
:.c
=.o
)
140 +POBJ
= $
(PSRC
:.c
=.lo
)
142 TARGET
= test$
(P
)$
(EXE
)
144 @@
-182,12 +182,11 @@
145 $
(WHERE
)/mtr
/llib-lmtr.
ln $
(WHERE
)/st
/llib-lst.
ln \
146 $
(WHERE
)/util
/llib-lutil.
ln
152 + libtool
--mode=link gcc
-o $@ $?
155 - $
(CC
) -c $
< -I$
(INCLUDE
) $
(ICFLAGS
) $
(XCFLAGS
) $
(DDDEBUG
) $
(MTRDEBUG
) $
(DDDMPDEBUG
) $
(LDFLAGS
)
157 + $
(CC
) -c -o $@ $
< -I$
(INCLUDE
) $
(ICFLAGS
) $
(XCFLAGS
) $
(DDDEBUG
) $
(MTRDEBUG
) $
(DDDMPDEBUG
) $
(LDFLAGS
)
159 optimize_dec
: lib$
(P
).b
161 @@
-231,12 +230,13 @@
162 #----------------------------------------------------------------------------#
165 - rm -f *.o
*.u mon.out gmon.out
*.pixie
*.Addrs
*.Counts mnem.
* \
166 + rm -f *.o
*.lo
*.u mon.out gmon.out
*.pixie
*.Addrs
*.Counts mnem.
* \
167 .pure core
*.warnings
170 - rm -f $
(TARGET
) $
(TARGETu
) lib
*.a lib$
(P
).b llib-l$
(P
).
ln \
171 + rm -f $
(TARGET
) $
(TARGETu
) lib
*.a lib
*.la lib$
(P
).b llib-l$
(P
).
ln \
172 *.bak
*~ tags .gdb_history
*.qv
*.qx
183 -POBJ = $
(PSRC
:.c
=.o
)
184 +POBJ
= $
(PSRC
:.c
=.lo
)
190 #---------------------------
196 + libtool
--mode=link gcc
-o $@ $?
198 -.c.o
: $
(PSRC
) $
(PHDR
)
199 - $
(CC
) -c $
< -I$
(INCLUDE
) $
(CFLAGS
)
201 + $
(CC
) -c -o $@ $
< -I$
(INCLUDE
) $
(CFLAGS
)
203 optimize_dec
: lib$
(P
).b
206 all
: lib$
(P
).a lib$
(P
).b llib-l$
(P
).
ln tags
209 - rm -f *.o
*.u .pure
*.warnings
210 + rm -f *.o
*.lo
*.u .pure
*.warnings
213 - rm -f lib
*.a lib$
(P
).b llib-l$
(P
).
ln tags
*~
*.bak
*.qv
*.qx
214 + rm -f lib
*.a lib
*.la lib$
(P
).b llib-l$
(P
).
ln tags
*~
*.bak
*.qv
*.qx
220 PSRC
= mtrBasic.c mtrGroup.c
222 -POBJ = $
(PSRC
:.c
=.o
)
223 +POBJ
= $
(PSRC
:.c
=.lo
)
229 #---------------------------
235 + libtool
--mode=link gcc
-o $@ $?
237 -.c.o
: $
(PSRC
) $
(PHDR
)
238 - $
(CC
) -c $
< -I$
(INCLUDE
) $
(CFLAGS
) $
(MTRDEBUG
)
240 + $
(CC
) -c -o $@ $
< -I$
(INCLUDE
) $
(CFLAGS
) $
(MTRDEBUG
)
242 optimize_dec
: lib$
(P
).b
245 cc
-O3 $
(XCFLAGS
) $
(LDFLAGS
) -o $@ $
(UBJ
) $
(BLIBS
) -lm
248 - rm -f *.o
*.u mon.out gmon.out
*.pixie
*.Addrs
*.Counts mnem.
* \
249 + rm -f *.o
*.lo
*.u mon.out gmon.out
*.pixie
*.Addrs
*.Counts mnem.
* \
250 .pure core
*.warnings
253 - rm -f $
(TARGET
) $
(TARGETu
) lib
*.a lib$
(P
).b llib-l$
(P
).
ln \
254 + rm -f $
(TARGET
) $
(TARGETu
) lib
*.a lib
*.la lib$
(P
).b llib-l$
(P
).
ln \
255 *.bak
*~ tags
*.qv
*.qx
257 --- a
/nanotrav
/Makefile
258 +++ b
/nanotrav
/Makefile
261 INCLUDE
= $
(WHERE
)/include
263 -LIBS = $
(WHERE
)/dddmp
/libdddmp.a $
(WHERE
)/cudd
/libcudd.a \
264 - $
(WHERE
)/mtr
/libmtr.a $
(WHERE
)/st
/libst.a $
(WHERE
)/util
/libutil.a \
265 - $
(WHERE
)/epd
/libepd.a
266 +LIBS
= $
(WHERE
)/libcudd.la $
(WHERE
)/libdddmp.la
269 #MNEMLIB = $(WHERE)/mnemosyne/libmnem.a
271 HDR
= bnet.h ntr.h $
(WHERE
)/include
/dddmp.h $
(WHERE
)/include
/cudd.h \
272 $
(WHERE
)/include
/cuddInt.h
280 #------------------------------------------------------
282 $
(TARGET
): $
(SRC
) $
(OBJ
) $
(HDR
) $
(LIBS
) $
(MNEMLIB
)
283 - $
(PURE
) $
(CC
) $
(CFLAGS
) $
(LDFLAGS
) -o $@ $
(OBJ
) $
(LIBS
) $
(MNEMLIB
) -lm
284 + libtool
--mode=link gcc $
(CFLAGS
) $
(LDFLAGS
) -o $@ $
(OBJ
) $
(LIBS
) $
(MNEMLIB
) -lm
287 - $
(CC
) -c $
< -I$
(INCLUDE
) $
(CFLAGS
) $
(DDDEBUG
)
289 + $
(CC
) -c -o $@ $
< -I$
(INCLUDE
) $
(CFLAGS
) $
(DDDEBUG
)
291 # if the header files change, recompile
297 - rm -f *.o
*.u mon.out gmon.out
*.pixie
*.Addrs
*.Counts mnem.
* \
298 + rm -f *.o
*.lo
*.u mon.out gmon.out
*.pixie
*.Addrs
*.Counts mnem.
* \
299 .pure core
*.warnings
302 rm -f $
(TARGET
) $
(TARGETu
) *.bak
*~ .gdb_history
*.qv
*.qx
309 PHDR
= cuddObj.hh $
(INCLUDE
)/cudd.h
310 -POBJ = $
(PSRC
:.cc
=.o
)
311 +POBJ
= $
(PSRC
:.cc
=.lo
)
312 PUBJ
= $
(PSRC
:.cc
=.u
)
313 TARGET
= test$
(P
)$
(EXE
)
317 #------------------------------------------------------
323 + libtool
--mode=link g
++ -o $@ $?
326 - $
(CPP
) -c $
< -I$
(INCLUDE
) $
(CFLAGS
) $
(DDDEBUG
)
328 + $
(CPP
) -c -o $@ $
< -I$
(INCLUDE
) $
(CFLAGS
) $
(DDDEBUG
)
330 optimize_dec
: lib$
(P
).b
333 programs
: $
(TARGET
) $
(TARGETu
) lintpgm
336 - rm -f *.o
*.u mon.out gmon.out
*.pixie
*.Addrs
*.Counts mnem.
* \
337 + rm -f *.o
*.lo
*.u mon.out gmon.out
*.pixie
*.Addrs
*.Counts mnem.
* \
338 .pure core
*.warnings
341 - rm -f $
(TARGET
) $
(TARGETu
) lib
*.a lib$
(P
).b llib-l$
(P
).
ln \
342 + rm -f $
(TARGET
) $
(TARGETu
) lib
*.a lib
*.la lib$
(P
).b llib-l$
(P
).
ln \
343 *.bak
*~ tags .gdb_history
*.qv
*.qx
351 -POBJ = $
(PSRC
:.c
=.o
)
352 +POBJ
= $
(PSRC
:.c
=.lo
)
358 #---------------------------
364 + libtool
--mode=link gcc
-o $@ $?
367 - $
(CC
) -c $
< -I$
(INCLUDE
) $
(CFLAGS
)
369 + $
(CC
) -c -o $@ $
< -I$
(INCLUDE
) $
(CFLAGS
)
371 optimize_dec
: lib$
(P
).b
374 all
: lib$
(P
).a lib$
(P
).b llib-l$
(P
).
ln tags
377 - rm -f *.o
*.u .pure
*.warnings
378 + rm -f *.o
*.lo
*.u .pure
*.warnings
381 - rm -f lib
*.a lib$
(P
).b llib-l$
(P
).
ln tags
*~
*.bak
*.qv
*.qx
382 + rm -f lib
*.a lib
*.la lib$
(P
).b llib-l$
(P
).
ln tags
*~
*.bak
*.qv
*.qx
387 PSRC
= cpu_time.c cpu_stats.c getopt.c safe_mem.c strsav.c texpand.c \
388 ptime.c prtime.c pipefork.c pathsearch.c stub.c \
389 tmpfile.c datalimit.c
390 -POBJ = $
(PSRC
:.c
=.o
)
391 +POBJ
= $
(PSRC
:.c
=.lo
)
396 INCLUDE
= $
(WHERE
)/include
402 + libtool
--mode=link gcc
-o $@ $?
405 - $
(CC
) -c $
< -I$
(INCLUDE
) $
(FLAGS
) $
(CFLAGS
)
407 + $
(CC
) -c -o $@ $
< -I$
(INCLUDE
) $
(FLAGS
) $
(CFLAGS
)
409 optimize_dec
: lib$
(P
).b
412 all
: lib$
(P
).a lib$
(P
).b llib-l$
(P
).
ln tags
415 - rm -f *.o
*.u core
*.warnings
416 + rm -f *.o
*.lo
*.u core
*.warnings
419 - rm -f lib$
(P
).a lib$
(P
).b llib-l$
(P
).
ln tags
*.bak
*~ .pure
420 + rm -f lib$
(P
).a lib$
(P
).la lib$
(P
).b llib-l$
(P
).
ln tags
*.bak
*~ .pure