aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
blob: c860407b14e547733f6951014564705a0f22fb71 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
all: bin/hush
	
LIBMAP_DIR := external/libmap
LIBMAP_LIB := $(LIBMAP_DIR)/lib/libmap.a
$(LIBMAP_LIB): $(LIBMAP_DIR)/Makefile
	make -C $(LIBMAP_DIR) lib/libmap.a

bin/hush: build/lexer.o build/command.o src/hush.c build build/variables.o build/builtin.o $(LIBMAP_LIB)
	gcc -Iinclude -I$(LIBMAP_DIR)/include build/lexer.o build/command.o build/variables.o build/builtin.o src/hush.c $(LIBMAP_LIB) -ggdb -o bin/hush

build/lexer.o: include/lexer.h src/lexer.c build
	gcc -Iinclude -c src/lexer.c -ggdb -o build/lexer.o

build/command.o: include/lexer.h include/command.h src/command.c
	gcc -Iinclude -c src/command.c -ggdb -o build/command.o

build/variables.o: include/variables.h
	gcc -Iinclude -I$(LIBMAP_DIR)/include -c src/variables.c  -ggdb -o build/variables.o

build/builtin.o: include/builtin.h include/variables.h
	gcc -Iinclude -I$(LIBMAP_DIR)/include -c src/builtin.c -ggdb -o build/builtin.o
	

.PHONY: build clean
build:
	-mkdir build
	-mkdir bin

clean:
	-rm -r build
	-rm -r bin
	make -C $(LIBMAP_DIR) clean