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.
		
		
		
		
		
			
		
			
				
					
					
						
							323 lines
						
					
					
						
							11 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							323 lines
						
					
					
						
							11 KiB
						
					
					
				| # $Id$ | |
| # | |
| # Makefile for the CUDD distribution kit | |
| #--------------------------------------------------------------------------- | |
|  | |
| # Beginning of the configuration section. These symbol definitions can | |
| # be overridden from the command line. | |
|  | |
| # C++ compiler | |
| #CXX	= g++ | |
| #CXX	= icpc | |
| #CXX	= ecpc | |
| #CXX	= CC | |
| #CXX	= /usr/local/opt/SUNWspro/bin/CC | |
| #CXX	= cxx | |
| CXX	= clang++ | |
| 
 | |
| # Specific options for compilation of C++ files. | |
| CXXFLAGS = -std=c++11 -stdlib=libc++ | |
| # Stricter standard conformance for g++. | |
| #CXXFLAGS = -std=c++98 | |
| # For Sun CC version 5, this invokes compatibility mode. | |
| #CXXFLAGS = -compat | |
| # On some versions of UP-UX, it is necessary to pass the option +a1 | |
| # to CC for the C++ test program to compile successfully. | |
| #CXXFLAGS = +a1 | |
|  | |
| # C compiler used for all targets except optimize_dec, which always uses cc. | |
| #CC	= cc | |
| #CC	= /usr/local/opt/SUNWspro/bin/cc | |
| #CC	= gcc | |
| #CC	= icc | |
| #CC	= ecc | |
| #CC	= /usr/ucb/cc | |
| #CC	= c89 | |
| #CC	= $(CXX) | |
| CC	= clang | |
| 
 | |
| # On some machines ranlib is either non-existent or redundant. | |
| # Use the following definition if your machine has ranlib and you think | |
| # it is needed. | |
| RANLIB	= ranlib | |
| # Use the following definition if your machine either does not have | |
| # ranlib (e.g., SUN running solaris) or can do without it (e.g., DEC Alpha). | |
| #RANLIB	= : | |
|  | |
| # Use ICFLAGS to specify machine-independent compilation flags. | |
| # These three are typical settings for cc. | |
| #ICFLAGS	= -g | |
| #ICFLAGS	= -O | |
| #ICFLAGS	= | |
| # These two are typical settings for optimized code with gcc. | |
| #ICFLAGS	= -g -O3 -Wall | |
| ICFLAGS	= -O3 | |
| 
 | |
| # Use XCFLAGS to specify machine-dependent compilation flags. | |
| # For some platforms no special flags are needed. | |
| #XCFLAGS	= -DHAVE_IEEE_754 -DBSD | |
| # | |
| #========================== | |
| #  Linux | |
| # | |
| # Gcc 4.2.4 or higher on i686. | |
| XCFLAGS	= -arch x86_64 -DHAVE_IEEE_754 -DBSD -DSIZEOF_VOID_P=8 -DSIZEOF_LONG=8 | |
| # Gcc 3.2.2 or higher on i686. | |
| #XCFLAGS	= -mtune=pentium4 -malign-double -DHAVE_IEEE_754 -DBSD | |
| # Gcc 2.8.1 on i686. | |
| #XCFLAGS	= -mcpu=pentiumpro -malign-double -DHAVE_IEEE_754 -DBSD | |
| # Gcc 4.2.4 or higher on x86_64 (64-bit compilation) | |
| #XCFLAGS	= -mtune=native -DHAVE_IEEE_754 -DBSD -DSIZEOF_VOID_P=8 -DSIZEOF_LONG=8 | |
| # Gcc 4.2.4 or higher on x86_64 (32-bit compilation) | |
| #XCFLAGS	= -m32 -mtune=native -malign-double -DHAVE_IEEE_754 -DBSD | |
| # Icc on i686 (older versions may not support -xHost). | |
| #XCFLAGS	= -ansi -xHost -align -ip -DHAVE_IEEE_754 -DBSD | |
| # Icc on x86_64 (64-bit compilation). | |
| #XCFLAGS	= -ansi -xHost -align -ip -DHAVE_IEEE_754 -DBSD -DSIZEOF_VOID_P=8 -DSIZEOF_LONG=8 | |
| # Gcc on ia64. | |
| #XCFLAGS	= -DHAVE_IEEE_754 -DBSD -DSIZEOF_VOID_P=8 -DSIZEOF_LONG=8 | |
| # Icc/ecc on ia64. | |
| #XCFLAGS = -ansi -DBSD -DHAVE_IEEE_754 -DSIZEOF_VOID_P=8 -DSIZEOF_LONG=8 | |
| # | |
| #========================== | |
| #  Solaris | |
| # | |
| # For Solaris, BSD should not be replaced by UNIX100. | |
| #XCFLAGS	= -DHAVE_IEEE_754 -DUNIX100 -DEPD_BIG_ENDIAN | |
| # Gcc 2.8.1 or higher on Ultrasparc. | |
| #XCFLAGS	= -mcpu=ultrasparc -DHAVE_IEEE_754 -DUNIX100 -DEPD_BIG_ENDIAN | |
| # For Solaris 2.5 and higher, optimized code with /usr/bin/cc or CC. | |
| #XCFLAGS	= -DHAVE_IEEE_754 -DUNIX100 -xO5 -native -dalign -DEPD_BIG_ENDIAN | |
| # On IA platforms, -dalign is not supported and causes warnings. | |
| #XCFLAGS	= -DHAVE_IEEE_754 -DUNIX100 -xO5 -native | |
| # Recent Sun compilers won't let you use -native on old Ultras. | |
| #XCFLAGS	= -DHAVE_IEEE_754 -DUNIX100 -xO5 -dalign -xlibmil -DEPD_BIG_ENDIAN | |
| # For Solaris 2.4, optimized code with /usr/bin/cc. | |
| #XCFLAGS	= -DHAVE_IEEE_754 -DUNIX100 -xO4 -dalign -DEPD_BIG_ENDIAN | |
| # For Solaris 2.5 and higher, optimized code with /usr/ucb/cc. | |
| #XCFLAGS	= -DHAVE_IEEE_754 -DBSD -xO5 -native -dalign -DEPD_BIG_ENDIAN | |
| #XCFLAGS	= -DHAVE_IEEE_754 -DBSD -xO5 -dalign -xlibmil -DEPD_BIG_ENDIAN | |
| # For Solaris 2.4, optimized code with /usr/ucb/cc. | |
| #XCFLAGS	= -DHAVE_IEEE_754 -DBSD -xO4 -dalign -DEPD_BIG_ENDIAN | |
| # | |
| #========================== | |
| #  DEC Alphas running Digital Unix | |
| # | |
| # For DEC Alphas either -ieee_with_inexact or -ieee_with_no_inexact is | |
| # needed. If you use only BDDs, -ieee_with_no_inexact is enough. | |
| # In the following, we consider three different compilers: | |
| # - the old native compiler (the one of MIPS ancestry that produces u-code); | |
| # - the new native compiler; | |
| # - gcc | |
| # On the Alphas, gcc (as of release 2.7.2) does not support 32-bit pointers | |
| # and IEEE 754 floating point arithmetic. Therefore, for this architecture | |
| # only, the native compilers provide a substatial advantage. | |
| # With the native compilers, specify -xtaso for 32-bit pointers. | |
| # Do not use -xtaso_short because explicit reference to stdout and stderr | |
| # does not work with this option. (Among other things.) | |
| # Notice that -taso must be included in LDFLAGS for -xtaso to work. | |
| # Given the number of possible choices, only some typical configurations | |
| # are proposed here. | |
| # | |
| # Old native compiler for the Alphas; 64-bit pointers. | |
| #XCFLAGS	= -DBSD -DHAVE_IEEE_754 -ieee_with_no_inexact -tune host -DSIZEOF_VOID_P=8 -DSIZEOF_LONG=8 | |
| # Old native compiler for the Alphas; 32-bit pointers. | |
| #XCFLAGS	= -DBSD -DHAVE_IEEE_754 -ieee_with_no_inexact -tune host -xtaso -DSIZEOF_LONG=8 | |
| # New native compiler for the Alphas; 64-bit pointers. | |
| #XCFLAGS	= -g3 -O4 -std -DBSD -DHAVE_IEEE_754 -ieee_with_no_inexact -tune host -DSIZEOF_VOID_P=8 -DSIZEOF_LONG=8 | |
| # New native compiler for the Alphas; 32-bit pointers. | |
| #XCFLAGS	= -g3 -O4 -std -DBSD -DHAVE_IEEE_754 -ieee_with_no_inexact -tune host -xtaso -DSIZEOF_LONG=8 | |
| # gcc for the Alphas: compile without HAVE_IEEE_754. | |
| #XCFLAGS	= -DBSD -DSIZEOF_VOID_P=8 -DSIZEOF_LONG=8 | |
| # | |
| #========================== | |
| # | |
| #  IBM RS6000 | |
| # | |
| # For the IBM RS6000 -qstrict is necessary when specifying -O3 with cc. | |
| #XCFLAGS	= -DBSD -DHAVE_IEEE_754 -DEPD_BIG_ENDIAN -O3 -qstrict | |
| # | |
| #========================== | |
| # | |
| #  HP-UX | |
| # | |
| # I haven't figured out how to enable IEEE 754 on the HPs I've tried... | |
| # For HP-UX using gcc. | |
| #XCFLAGS	= -DUNIX100 -DEPD_BIG_ENDIAN | |
| # For HP-UX using c89. | |
| #XCFLAGS	= +O3 -DUNIX100 -DEPD_BIG_ENDIAN | |
| # | |
| #========================== | |
| # | |
| #  Windows 95/98/NT/XP/Vista/7 with Cygwin tools | |
| # | |
| # The value of RLIMIT_DATA_DEFAULT should reflect the amount of | |
| # available memory (expressed in bytes). | |
| # Recent versions of cygwin have getrlimit, but the datasize limit | |
| # cannot be set. | |
| #XCFLAGS	= -mtune=native -malign-double -DHAVE_IEEE_754 -DHAVE_GETRLIMIT=0 -DRLIMIT_DATA_DEFAULT=268435456 | |
|  | |
| 
 | |
| # Define the level of self-checking and verbosity of the CUDD package. | |
| #DDDEBUG = -DDD_DEBUG -DDD_VERBOSE -DDD_STATS -DDD_CACHE_PROFILE -DDD_UNIQUE_PROFILE -DDD_COUNT | |
| DDDEBUG	= | |
| 
 | |
| # Define the level of self-checking and verbosity of the MTR package. | |
| #MTRDEBUG = -DMTR_DEBUG | |
| MTRDEBUG = | |
| 
 | |
| # Loader options. | |
| LDFLAGS	= | |
| # This may produce faster code on the DECstations. | |
| #LDFLAGS	= -jmpopt -Olimit 1000 | |
| # This may be necessary under some old versions of Linux. | |
| #LDFLAGS	= -static | |
| # This normally makes the program faster on the DEC Alphas. | |
| #LDFLAGS	= -non_shared -om | |
| # This is for 32-bit pointers on the DEC Alphas. | |
| #LDFLAGS	= -non_shared -om -taso | |
| #LDFLAGS	= -non_shared -taso | |
|  | |
| # Define PURE as purify to link with purify. | |
| # Define PURE as quantify to link with quantify. | |
| # Remember to compile with -g if you want line-by-line info with quantify. | |
| PURE = | |
| #PURE	= purify | |
| #PURE	= quantify | |
|  | |
| # Define EXE as .exe for MS-DOS and derivatives.  Not required by recent | |
| # versions of cygwin. | |
| EXE	= | |
| #EXE	= .exe | |
|  | |
| # End of the configuration section. | |
| #--------------------------------------------------------------------------- | |
|  | |
| MFLAG   = -DMNEMOSYNE | |
| MNEMLIB	= ../mnemosyne/libmnem.a | |
| 
 | |
| DDWDIR	= . | |
| IDIR	= $(DDWDIR)/include | |
| INCLUDE = -I$(IDIR) | |
| 
 | |
| BDIRS	= cudd dddmp mtr st util epd obj | |
| DIRS	= $(BDIRS) | |
| 
 | |
| #------------------------------------------------------------------------ | |
|  | |
| .PHONY : build | |
| .PHONY : nanotrav | |
| .PHONY : check_leaks | |
| .PHONY : optimize_dec | |
| .PHONY : testcudd | |
| .PHONY : libobj | |
| .PHONY : testobj | |
| .PHONY : testdddmp | |
| .PHONY : testmtr | |
| .PHONY : lint | |
| .PHONY : all | |
| .PHONY : clean | |
| .PHONY : distclean | |
| 
 | |
| 
 | |
| build: | |
| 	sh ./setup.sh | |
| 	@for dir in $(DIRS); 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)" )\ | |
| 	done | |
| 
 | |
| nanotrav: build | |
| 
 | |
| check_leaks: | |
| 	sh ./setup.sh | |
| 	@for dir in mnemosyne $(DIRS); do \ | |
| 		(cd $$dir; \ | |
| 		echo Making $$dir ...; \ | |
| 		make CC=$(CC) RANLIB=$(RANLIB) MFLAG=$(MFLAG) MNEMLIB=$(MNEMLIB) ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" EXE="$(EXE)" )\ | |
| 	done | |
| 
 | |
| optimize_dec: | |
| 	sh ./setup.sh | |
| 	@for dir in $(DIRS); do \ | |
| 		(cd $$dir; \ | |
| 		echo Making $$dir ...; \ | |
| 		make CC=$(CC) RANLIB=$(RANLIB) XCFLAGS="$(XCFLAGS)" LDFLAGS="$(LDFLAGS)" optimize_dec )\ | |
| 	done | |
| 
 | |
| lint: | |
| 	sh ./setup.sh | |
| 	@for dir in $(DIRS) obj; do \ | |
| 		(cd $$dir; \ | |
| 		echo Making lint in $$dir ...; \ | |
| 		make CC=$(CC) lint )\ | |
| 	done | |
| 
 | |
| tags: | |
| 	sh ./setup.sh | |
| 	@for dir in $(DIRS) obj; do \ | |
| 		(cd $$dir; \ | |
| 		echo Making tags in $$dir ...; \ | |
| 		make CC=$(CC) tags )\ | |
| 	done | |
| 
 | |
| all: | |
| 	sh ./setup.sh | |
| 	@for dir in $(DIRS); do \ | |
| 		(cd $$dir; \ | |
| 		echo Making all in $$dir ...; \ | |
| 		make CC=$(CC) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" all )\ | |
| 	done | |
| 
 | |
| testcudd: | |
| 	sh ./setup.sh | |
| 	@for dir in util st mtr epd; 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)" )\ | |
| 	done | |
| 	@(cd cudd; \ | |
| 	echo Making testcudd ...; \ | |
| 	make CC=$(CC) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" testcudd$(EXE) ) | |
| 
 | |
| objlib: | |
| 	sh ./setup.sh | |
| 	@for dir in $(BDIRS); 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)" )\ | |
| 	done | |
| 	@(cd obj; \ | |
| 	echo Making obj ...; \ | |
| 	make CXX=$(CXX) CXXFLAGS=$(CXXFLAGS) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" ) | |
| 
 | |
| testobj: objlib | |
| 	@(cd obj; \ | |
| 	echo Making testobj ...; \ | |
| 	make CXX=$(CXX) CXXFLAGS=$(CXXFLAGS) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" testobj$(EXE) ) | |
| 
 | |
| testdddmp: build | |
| 	@(cd dddmp; \ | |
| 	echo Making testdddmp ...; \ | |
| 	make CC=$(CC) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" testdddmp$(EXE) ) | |
| 
 | |
| testmtr: build | |
| 	@(cd mtr; \ | |
| 	echo Making testmtr ...; \ | |
| 	make CC=$(CC) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" testmtr$(EXE) ) | |
| 
 | |
| clean: | |
| 	@for dir in mnemosyne $(DIRS) obj; do	\ | |
| 	    (cd $$dir;	\ | |
| 	     echo Cleaning $$dir ...; \ | |
| 	     make -s clean	) \ | |
| 	done | |
| 
 | |
| distclean: | |
| 	@for dir in mnemosyne $(DIRS) obj; do	\ | |
| 	    (cd $$dir;	\ | |
| 	     echo Cleaning $$dir ...; \ | |
| 	     make -s EXE="$(EXE)" distclean	) \ | |
| 	done | |
| 	sh ./shutdown.sh
 |