46 lines
820 B
Makefile
46 lines
820 B
Makefile
LEANC=../../../bin/leanc
|
|
LEAN=../../../bin/lean
|
|
COMMON_SRCS = parser.lean syntax.lean filemap.lean
|
|
SRCS = $(COMMON_SRCS) test1.lean
|
|
OLEANS = $(SRCS:.lean=.olean)
|
|
CPPS = $(SRCS:.lean=.cpp)
|
|
COMMON_OBJS = $(COMMON_SRCS:.lean=.o)
|
|
DEPS = $(SRCS:.lean=.depend)
|
|
CPPFLAGS = -O3
|
|
|
|
.PHONY: all clean
|
|
|
|
all: test1 $(OLEANS)
|
|
|
|
depends: $(DEPS)
|
|
|
|
%.depend: %.lean
|
|
@echo $(<:.lean=.olean): `$(LEAN) --deps $< | python relative.py` > $@
|
|
|
|
%.olean: %.lean %.depend
|
|
$(LEAN) --make --cpp="$*.cpp.tmp" $<
|
|
mv "$*.cpp.tmp" "$*.cpp"
|
|
@touch $*.olean
|
|
|
|
%.cpp: %.olean
|
|
@
|
|
|
|
%.o: %.cpp
|
|
$(LEANC) -c $(CPPFLAGS) -o $@ $<
|
|
|
|
test1: test1.o $(COMMON_OBJS)
|
|
$(LEANC) -o $@ $^
|
|
|
|
# test2: test2.o $(COMMON_OBJS)
|
|
# $(LEANC) -o $@ $^
|
|
|
|
clean:
|
|
rm -f *.olean
|
|
rm -f *.cpp
|
|
rm -f *.o
|
|
rm -f *.depend
|
|
rm -f test1 test2
|
|
|
|
.PRECIOUS: %.depend %.cpp
|
|
|
|
include $(DEPS)
|