mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-26 09:24:37 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			73 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| # Mention default target.
 | |
| all:
 | |
| 
 | |
| # Implicit rule to compile C++ files.  Modify to your taste.
 | |
| %.o: %.cc
 | |
| 	g++ -c -O2 -Wall -Wextra -pedantic $<
 | |
| 
 | |
| # Components of the library.
 | |
| library-objects = \
 | |
| 	BigUnsigned.o \
 | |
| 	BigInteger.o \
 | |
| 	BigIntegerAlgorithms.o \
 | |
| 	BigUnsignedInABase.o \
 | |
| 	BigIntegerUtils.o \
 | |
| 
 | |
| library-headers = \
 | |
| 	NumberlikeArray.hh \
 | |
| 	BigUnsigned.hh \
 | |
| 	BigInteger.hh \
 | |
| 	BigIntegerAlgorithms.hh \
 | |
| 	BigUnsignedInABase.hh \
 | |
| 	BigIntegerLibrary.hh \
 | |
| 
 | |
| # To ``make the library'', make all its objects using the implicit rule.
 | |
| library: $(library-objects)
 | |
| 
 | |
| # Conservatively assume that all the objects depend on all the headers.
 | |
| $(library-objects): $(library-headers)
 | |
| 
 | |
| # TESTSUITE (NOTE: Currently expects a 32-bit system)
 | |
| # Compiling the testsuite.
 | |
| testsuite.o: $(library-headers)
 | |
| testsuite: testsuite.o $(library-objects)
 | |
| 	g++ $^ -o $@
 | |
| # Extract the expected output from the testsuite source.
 | |
| testsuite.expected: testsuite.cc
 | |
| 	nl -ba -p -s: $< | sed -nre 's,^ +([0-9]+):.*//([^ ]),Line \1: \2,p' >$@
 | |
| # Run the testsuite.
 | |
| .PHONY: test
 | |
| test: testsuite testsuite.expected
 | |
| 	./run-testsuite
 | |
| testsuite-cleanfiles = \
 | |
| 	testsuite.o testsuite testsuite.expected \
 | |
| 	testsuite.out testsuite.err
 | |
| 
 | |
| # The rules below build a program that uses the library.  They are preset to
 | |
| # build ``sample'' from ``sample.cc''.  You can change the name(s) of the
 | |
| # source file(s) and program file to build your own program, or you can write
 | |
| # your own Makefile.
 | |
| 
 | |
| # Components of the program.
 | |
| program = sample
 | |
| program-objects = sample.o
 | |
| 
 | |
| # Conservatively assume all the program source files depend on all the library
 | |
| # headers.  You can change this if it is not the case.
 | |
| $(program-objects) : $(library-headers)
 | |
| 
 | |
| # How to link the program.  The implicit rule covers individual objects.
 | |
| $(program) : $(program-objects) $(library-objects)
 | |
| 	g++ $^ -o $@
 | |
| 
 | |
| # Delete all generated files we know about.
 | |
| clean :
 | |
| 	rm -f $(library-objects) $(testsuite-cleanfiles) $(program-objects) $(program)
 | |
| 
 | |
| # I removed the *.tag dependency tracking system because it had few advantages
 | |
| # over manually entering all the dependencies.  If there were a portable,
 | |
| # reliable dependency tracking system, I'd use it, but I know of no such;
 | |
| # cons and depcomp are almost good enough.
 | |
| 
 | |
| # Come back and define default target.
 | |
| all : library $(program)
 |