You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

114 lines
2.6 KiB

  1. # $Id: Makefile,v 1.3 2001/03/19 07:34:37 fabio Exp fabio $
  2. #
  3. # obj: CUDD's C++ interface
  4. #---------------------------------------------------------------------------
  5. .SUFFIXES: .o .cc .u
  6. #CXX = g++
  7. CXX = clang++
  8. RANLIB = ranlib
  9. # Define EXE as .exe for MS-DOS and derivatives.
  10. PURE =
  11. EXE =
  12. #EXE = .exe
  13. MFLAG =
  14. #ICFLAGS = -g
  15. ICFLAGS =
  16. XCFLAGS =
  17. #CXXFLAGS =
  18. CXXFLAGS = -O3 -std=c++11 -stdlib=libc++
  19. #CXXFLAGS = -O3 -std=c++0x
  20. CFLAGS = $(ICFLAGS) $(MFLAG) $(XCFLAGS) $(CXXFLAGS)
  21. DDDEBUG =
  22. LINTFLAGS = -u -n -DDD_STATS -DDD_CACHE_PROFILE -DDD_VERBOSE -DDD_DEBUG -DDD_UNIQUE_PROFILE
  23. # this is to create the lint library
  24. LINTSWITCH = -o
  25. WHERE = ..
  26. INCLUDE = $(WHERE)/include
  27. LIBS = ./libobj.a $(WHERE)/cudd/libcudd.a $(WHERE)/mtr/libmtr.a \
  28. $(WHERE)/st/libst.a $(WHERE)/util/libutil.a $(WHERE)/epd/libepd.a
  29. MNEMLIB =
  30. BLIBS = -kL. -klobj -kL$(WHERE)/cudd -klcudd -kL$(WHERE)/mtr -klmtr \
  31. -kL$(WHERE)/st -klst -kL$(WHERE)/util -klutil -kL$(WHERE)/epd -klepd
  32. LINTLIBS = ./llib-lobj.ln $(WHERE)/cudd/llib-lcudd.ln \
  33. $(WHERE)/mtr/llib-lmtr.ln $(WHERE)/st/llib-lst.ln \
  34. $(WHERE)/util/llib-lutil.ln $(WHERE)/epd/llib-lepd.ln
  35. LDFLAGS =
  36. # files for the package
  37. P = obj
  38. PSRC = cuddObj.cc
  39. PHDR = cuddObj.hh $(INCLUDE)/cudd.h
  40. POBJ = $(PSRC:.cc=.o)
  41. PUBJ = $(PSRC:.cc=.u)
  42. TARGET = test$(P)$(EXE)
  43. TARGETu = test$(P)-u
  44. # files for the test program
  45. SRC = test$(P).cc
  46. OBJ = $(SRC:.cc=.o)
  47. UBJ = $(SRC:.cc=.u)
  48. #------------------------------------------------------
  49. lib$(P).a: $(POBJ)
  50. ar rv $@ $?
  51. $(RANLIB) $@
  52. .cc.o: $(PHDR)
  53. $(CXX) -c $< -I$(INCLUDE) $(CFLAGS) $(DDDEBUG)
  54. optimize_dec: lib$(P).b
  55. lib$(P).b: $(PUBJ)
  56. ar rv $@ $?
  57. $(RANLIB) $@
  58. .cc.u: $(PHDR)
  59. cxx -j $< -I$(INCLUDE) $(CFLAGS)
  60. # if the header files change, recompile
  61. $(POBJ): $(PHDR)
  62. $(PUBJ): $(PHDR)
  63. $(OBJ): $(PHDR)
  64. $(UBJ): $(PHDR)
  65. $(TARGET): $(SRC) $(OBJ) $(HDR) $(LIBS) $(MNEMLIB)
  66. $(PURE) $(CXX) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJ) $(LIBS) $(MNEMLIB) -lm
  67. # optimize (DECstations and Alphas only: uses u-code)
  68. $(TARGETu): $(SRC) $(UBJ) $(HDR) $(LIBS:.a=.b)
  69. cxx -O3 -Olimit 1000 $(XCFLAGS) $(LDFLAGS) -o $@ $(UBJ) $(BLIBS) -lm
  70. lint: llib-l$(P).ln
  71. llib-l$(P).ln: $(PSRC) $(PHDR)
  72. lint $(LINTFLAGS) $(LINTSWITCH)$(P) -I$(INCLUDE) $(PSRC)
  73. lintpgm: lint
  74. lint $(LINTFLAGS) -I$(INCLUDE) $(SRC) $(LINTLIBS)
  75. tags: $(PSRC) $(PHDR)
  76. ctags $(PSRC) $(PHDR)
  77. all: lib$(P).a lib$(P).b llib-l$(P).ln tags
  78. programs: $(TARGET) $(TARGETu) lintpgm
  79. clean:
  80. rm -f *.o *.u mon.out gmon.out *.pixie *.Addrs *.Counts mnem.* \
  81. .pure core *.warnings
  82. distclean: clean
  83. rm -f $(TARGET) $(TARGETu) lib*.a lib$(P).b llib-l$(P).ln \
  84. *.bak *~ tags .gdb_history *.qv *.qx