35 lines
556 B
Makefile
35 lines
556 B
Makefile
|
|
CC=gcc
|
|
LD=gcc
|
|
CPPFLAGS=-g
|
|
|
|
BUILD=build
|
|
|
|
src=main.c
|
|
|
|
objects=$(patsubst %.c,$(BUILD)/obj/%.o,$(src))
|
|
|
|
$(objects): | $(BUILD)/obj
|
|
|
|
test:$(BUILD)/binary
|
|
mkdir -p $@
|
|
./$(BUILD)/binary test.binary >test/parse1.binary
|
|
./$(BUILD)/binary parse1.binary >test/parse2.binary
|
|
diff test/parse1.binary test/parse2.binary
|
|
|
|
$(BUILD)/binary: $(objects)
|
|
@echo link objects $(objects)
|
|
$(LD) $(LDFLAGS) $^ -o $@
|
|
|
|
$(BUILD)/obj:
|
|
mkdir -p $@
|
|
|
|
$(BUILD)/obj/%.o: %.c
|
|
@echo compile $<
|
|
@$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
|
|
|
|
clean:
|
|
rm -f $(objects)
|
|
|
|
.PHONY:clean test
|