50 lines
		
	
	
		
			1013 B
		
	
	
	
		
			Makefile
		
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1013 B
		
	
	
	
		
			Makefile
		
	
	
	
| CFLAGS=-Wall -Wextra -std=c99
 | |
| 
 | |
| ifeq ($(findstring CYGWIN,$(shell uname -s)), CYGWIN)
 | |
|   XFILE_LIB=cygxfile.dll
 | |
|   PICRIN_LIB=cygpicrin.dll
 | |
| else
 | |
|   XFILE_LIB=libxfile.so
 | |
|   PICRIN_LIB=libpicrin.so
 | |
| endif
 | |
| 
 | |
| all: deps release
 | |
| 
 | |
| deps:
 | |
| 	git submodule update --init
 | |
| 	$(CC) $(CFLAGS) -shared -fPIC extlib/xfile/*.c -o lib/$(XFILE_LIB) -I./extlib/xfile
 | |
| 
 | |
| release: CFLAGS += -DDEBUG=0 -O3
 | |
| release: build
 | |
| 
 | |
| debug: CFLAGS += -g -DDEBUG=1 -O0
 | |
| debug: build
 | |
| 
 | |
| build: build-lib build-main
 | |
| 
 | |
| build-main:
 | |
| 	$(CC) $(CFLAGS) -D_GNU_SOURCE -Wl,-rpath lib tools/main.c -o bin/picrin -I./include -I./extlib -L./lib -lreadline -lm -lxfile -lpicrin
 | |
| 
 | |
| build-lib:
 | |
| 	cd src; \
 | |
| 	  yacc -d parse.y; \
 | |
| 	  flex scan.l
 | |
| 	$(CC) $(CFLAGS) -shared -fPIC src/*.c -o lib/$(PICRIN_LIB) -I./include -I./extlib -L./lib -lm -lxfile
 | |
| 
 | |
| clean:
 | |
| 	rm -f src/y.tab.c src/y.tab.h src/lex.yy.c
 | |
| 	rm -f lib/$(PICRIN_LIB)
 | |
| 	rm -f bin/picrin
 | |
| 
 | |
| run:
 | |
| 	bin/picrin
 | |
| 
 | |
| tak: release
 | |
| 	bin/picrin etc/tak.scm
 | |
| 
 | |
| lines: clean
 | |
| 	wc -l `find . -name "*.[chyl]"`
 | |
| 
 | |
| no-act:
 | |
| 	bin/picrin -e '' > /dev/null
 |