summaryrefslogtreecommitdiff
path: root/contrib/build-cudd-2.4.2-with-libtool.sh
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/build-cudd-2.4.2-with-libtool.sh')
-rwxr-xr-xcontrib/build-cudd-2.4.2-with-libtool.sh421
1 files changed, 421 insertions, 0 deletions
diff --git a/contrib/build-cudd-2.4.2-with-libtool.sh b/contrib/build-cudd-2.4.2-with-libtool.sh
new file mode 100755
index 000000000..d55dd1385
--- /dev/null
+++ b/contrib/build-cudd-2.4.2-with-libtool.sh
@@ -0,0 +1,421 @@
+#!/bin/bash
+#
+# Patch to cudd build system to build everything with libtool, supporting
+# shared libraries. Also all libraries are combined into a single one.
+#
+# This script applies the patch, builds cudd, and, assuming there are no
+# errors, reverses the patch.
+#
+# -- Morgan Deters <mdeters@cs.nyu.edu> Wed, 13 Jul 2011 18:03:11 -0400
+#
+
+cd "$(dirname "$0")"
+if [ $# -ne 1 -o "$1" = -h -o "$1" = -help -o "$1" = --help ]; then
+ echo "usage: $(basename "$0") cudd-dir" >&2
+ exit 1
+fi
+
+patch="$(pwd)/$(basename "$0")"
+if [ ! -r "$patch" ]; then
+ echo "error: can't read patch at \`$patch'" >&2
+ exit 1
+fi
+if ! expr "$1" : / &>/dev/null; then
+ echo "error: must specify an absolute path to cudd sources" >&2
+ exit 1
+fi
+cudd_dir="$1"
+
+arch=$(../config/config.guess | cut -f1 -d-)
+case "$arch" in
+ i?86) XCFLAGS='-mtune=pentium4 -malign-double -DHAVE_IEEE_754 -DBSD' ;;
+ x86_64) XCFLAGS='-mtune=native -DHAVE_IEEE_754 -DBSD -DSIZEOF_VOID_P=8 -DSIZEOF_LONG=8' ;;
+ *) XCFLAGS= ;;
+esac
+
+set -ex
+
+XCFLAGS="$XCFLAGS"
+
+version_info=0:0:0
+
+prefix="$cudd_dir"
+eprefix="$prefix"
+bindir="$eprefix/bin"
+datadir="$prefix/share"
+includedir="$prefix/include"
+libdir="$prefix/lib"
+mandir="$datadir/man/man1"
+docdir="$datadir/doc"
+
+cd "$cudd_dir"
+patch -p1 < "$patch"
+make "XCFLAGS=$XCFLAGS" "CC=libtool --mode=compile gcc" "CPP=libtool --mode=compile g++" libdir="$libdir" version_info="$version_info" DDDEBUG= MTRDEBUG= ICFLAGS=-O2
+mkdir -p "$libdir"
+libtool --mode=install cp libcudd.la "$libdir/libcudd.la"
+libtool --mode=install cp libcuddxx.la "$libdir/libcuddxx.la"
+libtool --mode=install cp libdddmp.la "$libdir/libdddmp.la"
+libtool --finish "$libdir"
+patch -p1 -R < "$patch"
+exit
+
+# patch follows
+
+--- a/Makefile
++++ b/Makefile
+@@ -221,11 +221,16 @@
+
+ build:
+ sh ./setup.sh
+- @for dir in $(DIRS); do \
++ +@for dir in $(BDIRS) obj; do \
+ (cd $$dir; \
+ echo Making $$dir ...; \
+- make CC=$(CC) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" )\
++ make CC="$(CC)" RANLIB="$(RANLIB)" MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" )\
+ done
++ 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
++ libtool --mode=link gcc -rpath "${libdir}" -version-info "$(version_info)" -o libdddmp.la dddmp/libdddmp.la
++ libtool --mode=link g++ -rpath "$(libdir)" -version-info "$(version_info)" -o libcuddxx.la obj/libobj.la -lcudd
++ +@(cd nanotrav; \
++ make CC="$(CC)" RANLIB="$(RANLIB)" MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" )
+
+ nanotrav: build
+
+@@ -319,4 +324,6 @@
+ echo Cleaning $$dir ...; \
+ make -s EXE="$(EXE)" distclean ) \
+ done
++ rm -f libcudd* libdddmp*
++ rm -fr .libs
+ sh ./shutdown.sh
+--- a/cudd/Makefile
++++ b/cudd/Makefile
+@@ -59,7 +59,7 @@
+ cuddZddPort.c cuddZddReord.c cuddZddSetop.c cuddZddSymm.c \
+ cuddZddUtil.c
+ PHDR = cudd.h cuddInt.h
+-POBJ = $(PSRC:.c=.o)
++POBJ = $(PSRC:.c=.lo)
+ PUBJ = $(PSRC:.c=.u)
+ TARGET = test$(P)$(EXE)
+ TARGETu = test$(P)-u
+@@ -71,12 +71,11 @@
+
+ #------------------------------------------------------
+
+-lib$(P).a: $(POBJ)
+- ar rv $@ $?
+- $(RANLIB) $@
++lib$(P).la: $(POBJ)
++ libtool --mode=link gcc -o $@ $?
+
+-.c.o: $(PSRC) $(PHDR)
+- $(CC) -c $< -I$(INCLUDE) $(CFLAGS) $(DDDEBUG)
++%.lo: %.c
++ $(CC) -c -o $@ $< -I$(INCLUDE) $(CFLAGS) $(DDDEBUG)
+
+ optimize_dec: lib$(P).b
+
+@@ -116,9 +115,10 @@
+ programs: $(TARGET) $(TARGETu) lintpgm
+
+ clean:
+- rm -f *.o *.u mon.out gmon.out *.pixie *.Addrs *.Counts mnem.* \
++ rm -f *.o *.lo *.u mon.out gmon.out *.pixie *.Addrs *.Counts mnem.* \
+ .pure core *.warnings
+
+ distclean: clean
+- rm -f $(TARGET) $(TARGETu) lib*.a lib$(P).b llib-l$(P).ln \
++ rm -f $(TARGET) $(TARGETu) lib*.a lib*.la lib$(P).b llib-l$(P).ln \
+ *.bak *~ tags .gdb_history *.qv *.qx
++ rm -fr .libs
+--- a/dddmp/Makefile
++++ b/dddmp/Makefile
+@@ -148,7 +148,7 @@
+ dddmpStoreMisc.c dddmpUtil.c dddmpBinary.c dddmpConvert.c \
+ dddmpDbg.c
+ PHDR = dddmp.h dddmpInt.h $(INCLUDE)/cudd.h $(INCLUDE)/cuddInt.h
+-POBJ = $(PSRC:.c=.o)
++POBJ = $(PSRC:.c=.lo)
+ PUBJ = $(PSRC:.c=.u)
+ TARGET = test$(P)$(EXE)
+ TARGETu = test$(P)-u
+@@ -182,12 +182,11 @@
+ $(WHERE)/mtr/llib-lmtr.ln $(WHERE)/st/llib-lst.ln \
+ $(WHERE)/util/llib-lutil.ln
+
+-lib$(P).a: $(POBJ)
+- ar rv $@ $?
+- $(RANLIB) $@
++lib$(P).la: $(POBJ)
++ libtool --mode=link gcc -o $@ $?
+
+-.c.o: $(PHDR)
+- $(CC) -c $< -I$(INCLUDE) $(ICFLAGS) $(XCFLAGS) $(DDDEBUG) $(MTRDEBUG) $(DDDMPDEBUG) $(LDFLAGS)
++%.lo: %.c
++ $(CC) -c -o $@ $< -I$(INCLUDE) $(ICFLAGS) $(XCFLAGS) $(DDDEBUG) $(MTRDEBUG) $(DDDMPDEBUG) $(LDFLAGS)
+
+ optimize_dec: lib$(P).b
+
+@@ -231,12 +230,13 @@
+ #----------------------------------------------------------------------------#
+
+ clean:
+- rm -f *.o *.u mon.out gmon.out *.pixie *.Addrs *.Counts mnem.* \
++ rm -f *.o *.lo *.u mon.out gmon.out *.pixie *.Addrs *.Counts mnem.* \
+ .pure core *.warnings
+
+ distclean: clean
+- rm -f $(TARGET) $(TARGETu) lib*.a lib$(P).b llib-l$(P).ln \
++ rm -f $(TARGET) $(TARGETu) lib*.a lib*.la lib$(P).b llib-l$(P).ln \
+ *.bak *~ tags .gdb_history *.qv *.qx
++ rm -fr .libs
+
+
+
+--- a/epd/Makefile
++++ b/epd/Makefile
+@@ -19,7 +19,7 @@
+ P = epd
+ PSRC = epd.c
+ PHDR = epd.h
+-POBJ = $(PSRC:.c=.o)
++POBJ = $(PSRC:.c=.lo)
+ PUBJ = $(PSRC:.c=.u)
+
+ WHERE = ..
+@@ -27,12 +27,11 @@
+
+ #---------------------------
+
+-lib$(P).a: $(POBJ)
+- ar rv $@ $?
+- $(RANLIB) $@
++lib$(P).la: $(POBJ)
++ libtool --mode=link gcc -o $@ $?
+
+-.c.o: $(PSRC) $(PHDR)
+- $(CC) -c $< -I$(INCLUDE) $(CFLAGS)
++%.lo: %.c
++ $(CC) -c -o $@ $< -I$(INCLUDE) $(CFLAGS)
+
+ optimize_dec: lib$(P).b
+
+@@ -58,7 +57,8 @@
+ all: lib$(P).a lib$(P).b llib-l$(P).ln tags
+
+ clean:
+- rm -f *.o *.u .pure *.warnings
++ rm -f *.o *.lo *.u .pure *.warnings
+
+ distclean: clean
+- rm -f lib*.a lib$(P).b llib-l$(P).ln tags *~ *.bak *.qv *.qx
++ rm -f lib*.a lib*.la lib$(P).b llib-l$(P).ln tags *~ *.bak *.qv *.qx
++ rm -fr .libs
+--- a/mtr/Makefile
++++ b/mtr/Makefile
+@@ -30,7 +30,7 @@
+ P = mtr
+ PSRC = mtrBasic.c mtrGroup.c
+ PHDR = mtr.h
+-POBJ = $(PSRC:.c=.o)
++POBJ = $(PSRC:.c=.lo)
+ PUBJ = $(PSRC:.c=.u)
+ SRC = test$(P).c
+ HDR =
+@@ -49,12 +49,11 @@
+
+ #---------------------------
+
+-lib$(P).a: $(POBJ)
+- ar rv $@ $?
+- $(RANLIB) $@
++lib$(P).la: $(POBJ)
++ libtool --mode=link gcc -o $@ $?
+
+-.c.o: $(PSRC) $(PHDR)
+- $(CC) -c $< -I$(INCLUDE) $(CFLAGS) $(MTRDEBUG)
++%.lo: %.c
++ $(CC) -c -o $@ $< -I$(INCLUDE) $(CFLAGS) $(MTRDEBUG)
+
+ optimize_dec: lib$(P).b
+
+@@ -88,9 +87,10 @@
+ cc -O3 $(XCFLAGS) $(LDFLAGS) -o $@ $(UBJ) $(BLIBS) -lm
+
+ clean:
+- rm -f *.o *.u mon.out gmon.out *.pixie *.Addrs *.Counts mnem.* \
++ rm -f *.o *.lo *.u mon.out gmon.out *.pixie *.Addrs *.Counts mnem.* \
+ .pure core *.warnings
+
+ distclean: clean
+- rm -f $(TARGET) $(TARGETu) lib*.a lib$(P).b llib-l$(P).ln \
++ rm -f $(TARGET) $(TARGETu) lib*.a lib*.la lib$(P).b llib-l$(P).ln \
+ *.bak *~ tags *.qv *.qx
++ rm -fr .libs
+--- a/nanotrav/Makefile
++++ b/nanotrav/Makefile
+@@ -19,9 +19,7 @@
+
+ INCLUDE = $(WHERE)/include
+
+-LIBS = $(WHERE)/dddmp/libdddmp.a $(WHERE)/cudd/libcudd.a \
+- $(WHERE)/mtr/libmtr.a $(WHERE)/st/libst.a $(WHERE)/util/libutil.a \
+- $(WHERE)/epd/libepd.a
++LIBS = $(WHERE)/libcudd.la $(WHERE)/libdddmp.la
+
+ MNEMLIB =
+ #MNEMLIB = $(WHERE)/mnemosyne/libmnem.a
+@@ -39,7 +37,7 @@
+ HDR = bnet.h ntr.h $(WHERE)/include/dddmp.h $(WHERE)/include/cudd.h \
+ $(WHERE)/include/cuddInt.h
+
+-OBJ = $(SRC:.c=.o)
++OBJ = $(SRC:.c=.lo)
+ UBJ = $(SRC:.c=.u)
+
+ MFLAG =
+@@ -61,10 +59,10 @@
+ #------------------------------------------------------
+
+ $(TARGET): $(SRC) $(OBJ) $(HDR) $(LIBS) $(MNEMLIB)
+- $(PURE) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJ) $(LIBS) $(MNEMLIB) -lm
++ libtool --mode=link gcc $(CFLAGS) $(LDFLAGS) -o $@ $(OBJ) $(LIBS) $(MNEMLIB) -lm
+
+-.c.o: $(HDR)
+- $(CC) -c $< -I$(INCLUDE) $(CFLAGS) $(DDDEBUG)
++%.lo: %.c
++ $(CC) -c -o $@ $< -I$(INCLUDE) $(CFLAGS) $(DDDEBUG)
+
+ # if the header files change, recompile
+ $(OBJ): $(HDR)
+@@ -91,8 +89,9 @@
+ pixie $(TARGETu)
+
+ clean:
+- rm -f *.o *.u mon.out gmon.out *.pixie *.Addrs *.Counts mnem.* \
++ rm -f *.o *.lo *.u mon.out gmon.out *.pixie *.Addrs *.Counts mnem.* \
+ .pure core *.warnings
+
+ distclean: clean
+ rm -f $(TARGET) $(TARGETu) *.bak *~ .gdb_history *.qv *.qx
++ rm -fr .libs
+--- a/obj/Makefile
++++ b/obj/Makefile
+@@ -45,7 +45,7 @@
+ P = obj
+ PSRC = cuddObj.cc
+ PHDR = cuddObj.hh $(INCLUDE)/cudd.h
+-POBJ = $(PSRC:.cc=.o)
++POBJ = $(PSRC:.cc=.lo)
+ PUBJ = $(PSRC:.cc=.u)
+ TARGET = test$(P)$(EXE)
+ TARGETu = test$(P)-u
+@@ -57,12 +57,11 @@
+
+ #------------------------------------------------------
+
+-lib$(P).a: $(POBJ)
+- ar rv $@ $?
+- $(RANLIB) $@
++lib$(P).la: $(POBJ)
++ libtool --mode=link g++ -o $@ $?
+
+-.cc.o: $(PHDR)
+- $(CPP) -c $< -I$(INCLUDE) $(CFLAGS) $(DDDEBUG)
++%.lo: %.cc
++ $(CPP) -c -o $@ $< -I$(INCLUDE) $(CFLAGS) $(DDDEBUG)
+
+ optimize_dec: lib$(P).b
+
+@@ -102,9 +101,10 @@
+ programs: $(TARGET) $(TARGETu) lintpgm
+
+ clean:
+- rm -f *.o *.u mon.out gmon.out *.pixie *.Addrs *.Counts mnem.* \
++ rm -f *.o *.lo *.u mon.out gmon.out *.pixie *.Addrs *.Counts mnem.* \
+ .pure core *.warnings
+
+ distclean: clean
+- rm -f $(TARGET) $(TARGETu) lib*.a lib$(P).b llib-l$(P).ln \
++ rm -f $(TARGET) $(TARGETu) lib*.a lib*.la lib$(P).b llib-l$(P).ln \
+ *.bak *~ tags .gdb_history *.qv *.qx
++ rm -fr .libs
+--- a/st/Makefile
++++ b/st/Makefile
+@@ -19,7 +19,7 @@
+ P = st
+ PSRC = st.c
+ PHDR = st.h
+-POBJ = $(PSRC:.c=.o)
++POBJ = $(PSRC:.c=.lo)
+ PUBJ = $(PSRC:.c=.u)
+
+ WHERE = ..
+@@ -27,12 +27,11 @@
+
+ #---------------------------
+
+-lib$(P).a: $(POBJ)
+- ar rv $@ $?
+- $(RANLIB) $@
++lib$(P).la: $(POBJ)
++ libtool --mode=link gcc -o $@ $?
+
+-.c.o: $(PHDR)
+- $(CC) -c $< -I$(INCLUDE) $(CFLAGS)
++%.lo: %.c
++ $(CC) -c -o $@ $< -I$(INCLUDE) $(CFLAGS)
+
+ optimize_dec: lib$(P).b
+
+@@ -58,7 +57,8 @@
+ all: lib$(P).a lib$(P).b llib-l$(P).ln tags
+
+ clean:
+- rm -f *.o *.u .pure *.warnings
++ rm -f *.o *.lo *.u .pure *.warnings
+
+ distclean: clean
+- rm -f lib*.a lib$(P).b llib-l$(P).ln tags *~ *.bak *.qv *.qx
++ rm -f lib*.a lib*.la lib$(P).b llib-l$(P).ln tags *~ *.bak *.qv *.qx
++ rm -fr .libs
+--- a/util/Makefile
++++ b/util/Makefile
+@@ -21,19 +21,18 @@
+ PSRC = cpu_time.c cpu_stats.c getopt.c safe_mem.c strsav.c texpand.c \
+ ptime.c prtime.c pipefork.c pathsearch.c stub.c \
+ tmpfile.c datalimit.c
+-POBJ = $(PSRC:.c=.o)
++POBJ = $(PSRC:.c=.lo)
+ PUBJ = $(PSRC:.c=.u)
+ PHDR = util.h
+
+ WHERE = ..
+ INCLUDE = $(WHERE)/include
+
+-lib$(P).a: $(POBJ)
+- ar rv $@ $?
+- $(RANLIB) $@
++lib$(P).la: $(POBJ)
++ libtool --mode=link gcc -o $@ $?
+
+-.c.o: $(PHDR)
+- $(CC) -c $< -I$(INCLUDE) $(FLAGS) $(CFLAGS)
++%.lo: %.c
++ $(CC) -c -o $@ $< -I$(INCLUDE) $(FLAGS) $(CFLAGS)
+
+ optimize_dec: lib$(P).b
+
+@@ -59,7 +58,8 @@
+ all: lib$(P).a lib$(P).b llib-l$(P).ln tags
+
+ clean:
+- rm -f *.o *.u core *.warnings
++ rm -f *.o *.lo *.u core *.warnings
+
+ distclean: clean
+- rm -f lib$(P).a lib$(P).b llib-l$(P).ln tags *.bak *~ .pure
++ rm -f lib$(P).a lib$(P).la lib$(P).b llib-l$(P).ln tags *.bak *~ .pure
++ rm -fr .libs
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback