42 lines
1.2 KiB
Makefile
42 lines
1.2 KiB
Makefile
CXX=g++
|
|
CXXOPTS=-Og -ggdb -fvar-tracking-assignments -Wall -Wextra -pedantic -std=c++14 -march=native -fstack-protector-strong --param=ssp-buffer-size=4 -flto
|
|
LDOPTS=-Wl,--sort-common,--as-needed
|
|
|
|
iffexplore_CXXSRCS ::= iffexplore.cc IffFile.cc util.cc exceptions.cc
|
|
iffexplore_LIBS ::=
|
|
|
|
treexplore_CXXSRCS ::= treexplore.cc TreFile.cc IffFile.cc util.cc exceptions.cc decompress.cc
|
|
treexplore_LIBS ::=
|
|
|
|
font2png_CXXSRCS ::= font2png.cc
|
|
font2png_LIBS ::= -lpng
|
|
|
|
mvedecode_CXXSRCS ::= mvedecode.cc TreFile.cc IffFile.cc util.cc MveDecoder.cc exceptions.cc decompress.cc
|
|
mvedecode_LIBS ::= -lSDL2
|
|
|
|
progs ::= iffexplore treexplore mvedecode
|
|
|
|
all: $(progs)
|
|
|
|
objs/%.o: %.cc
|
|
$(CXX) $(CXXOPTS) -c -MMD -MP -o $@ $<
|
|
@cp objs/$*.d objs/$*.P; rm -f objs/$*.d
|
|
|
|
%.pb.cc %.pb.h: %.proto
|
|
protoc --cpp_out=. $<
|
|
|
|
$(progs): %:
|
|
$(CXX) $(CXXOPTS) $(LDOPTS) -o $@ $^ $($(@)_LIBS)
|
|
|
|
clean:
|
|
rm -f $(progs)\
|
|
$(foreach prog,$(progs),$(addprefix objs/,$($(prog)_CXXSRCS:.cc=.o)))\
|
|
$(foreach prog,$(progs),$(addprefix objs/,$($(prog)_CXXSRCS:.cc=.P)))
|
|
|
|
.PHONY: clean all
|
|
|
|
-include $(foreach prog,$(progs),$(addprefix objs/,$($(prog)_CXXSRCS:.cc=.P)))
|
|
|
|
.SECONDEXPANSION:
|
|
$(progs): %: $$(addprefix objs/,$$($$@_CXXSRCS:.cc=.o))
|