libui/GNUbase.mk

53 lines
900 B
Makefile

# 22 april 2015
OUTBASE = new
OUTDIR = out
OBJDIR = .obj
xHFILES = \
ui.h \
$(baseHFILES)
OFILES = \
$(baseCFILES:%.c=$(OBJDIR)/%.o) \
$(baseMFILES:%.m=$(OBJDIR)/%.o)
xCFLAGS = \
-g \
-Wall -Wextra \
-Wno-unused-parameter \
-Wno-switch \
--std=c99 \
$(CFLAGS) \
$(baseCFLAGS)
xLDFLAGS = \
-g \
$(LDFLAGS) \
$(baseLDFLAGS)
OUT = $(OUTDIR)/$(OUTBASE)$(baseSUFFIX)
$(OUT): $(OFILES) | $(OUTDIR)/.phony
$(CC) -o $(OUT) $(OFILES) $(xLDFLAGS)
.SECONDEXPANSION:
$(OBJDIR)/%.o: %.c $(xHFILES) | $$(dir $$@).phony
$(CC) -o $@ -c $< $(xCFLAGS)
$(OBJDIR)/%.o: %.m $(xHFILES) | $$(dir $$@).phony
$(CC) -o $@ -c $< $(xCFLAGS)
# see http://www.cmcrossroads.com/article/making-directories-gnu-make
%/.phony:
mkdir -p $(dir $@)
touch $@
.PRECIOUS: %/.phony
ui.h: ui.idl
idl2h -extern _UI_EXTERN -guard __UI_UI_H__ < ui.idl > ui.h
clean:
rm -rf $(OUTDIR) $(OBJDIR) ui.h
.PHONY: clean