zupdate/Makefile
zawz 52a35fe7d1 + Add package regex match
+ Add target all option
* Restructure commands
2020-08-11 16:27:39 +02:00

52 lines
1 KiB
Makefile

IDIR=include
SRCDIR=src
ODIR=obj
BINDIR=.
NAME = zupdate
LDFLAGS = -lpthread
CC=g++
CXXFLAGS= -I$(IDIR) -Wall -std=c++17
ifeq ($(DEBUG),true)
CXXFLAGS += -g
CC=clang++
else
CXXFLAGS += -O2 -fopenmp
endif
ifeq ($(STATIC),true)
LDFLAGS += -l:libztd.a
else
LDFLAGS += -lztd
endif
$(shell mkdir -p $(ODIR))
$(shell mkdir -p $(BINDIR))
# automatically finds .h and .hpp
DEPS = $(shell if [ -n "$(ld $(IDIR))" ] ; then ls $(IDIR)/*.hpp $(IDIR)/*.h 2>/dev/null ; fi)
# automatically finds .c and .cpp and makes the corresponding .o rule
OBJ = $(shell ls $(SRCDIR)/*.cpp $(SRCDIR)/*.c 2>/dev/null | sed 's|\.cpp|.o|g;s|\.c|.o|g;s|$(SRCDIR)/|$(ODIR)/|g')
$(ODIR)/%.o: $(SRCDIR)/%.c $(DEPS)
$(CC) $(CXXFLAGS) -c -o $@ $<
$(ODIR)/%.o: $(SRCDIR)/%.cpp $(DEPS)
$(CC) $(CXXFLAGS) -c -o $@ $<
$(BINDIR)/$(NAME): $(OBJ) $(DEPS)
$(CC) $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
test: $(BINDIR)/$(NAME)
$(BINDIR)/$(NAME)
clean:
rm $(ODIR)/*.o
clear:
rm $(BINDIR)/$(NAME)
install: $(BINDIR)/$(NAME)
mv $(BINDIR)/$(NAME) /usr/local/bin