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 $(LIBMAP_LIB) gcc -Iinclude -I$(LIBMAP_DIR)/include build/lexer.o build/command.o build/variables.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 .PHONY: build clean build: -mkdir build -mkdir bin clean: -rm -r build -rm -r bin make -C $(LIBMAP_DIR) clean