Lily Tsuru
cc59c0c6db
It's less painful than mingw. I'll next get the DLL going like this, though it'll be pretty easy.
47 lines
1.3 KiB
Makefile
47 lines
1.3 KiB
Makefile
|
|
# TODO: Handle C sources and deduplicate.
|
|
VPATH = $(dir $(CXXSRCS))
|
|
OBJS = $(addprefix $(OBJDIR)/,$(notdir $(CXXSRCS:.cpp=.o)))
|
|
|
|
# Build types
|
|
ifeq ($(TYPE),dll)
|
|
BUILD_PRODUCT = $(BINDIR)/$(NAME).dll
|
|
|
|
$(BINDIR)/$(NAME).dll: $(BINDIR)/ $(OBJDIR)/ $(OBJS)
|
|
echo -e "\e[92mLinking DLL $@\e[0m"
|
|
$(LD) $(BASE_LDFLAGS_SHARED) $(BASE_LDFLAGS) $($(CONFIG)_LDFLAGS) $(RTLIBS) $(LIBS) $(OBJS) /out:$@
|
|
else
|
|
ifeq ($(TYPE),exe)
|
|
BUILD_PRODUCT = $(BINDIR)/$(NAME).exe
|
|
|
|
$(BINDIR)/$(NAME).exe: $(BINDIR)/ $(OBJDIR)/ $(OBJS)
|
|
echo -e "\e[92mLinking EXE $@\e[0m"
|
|
$(LD) $(BASE_LDFLAGS) $($(CONFIG)_LDFLAGS) $($(CONFIG)_RTLIBS) $(LIBS) $(OBJS) /out:$@
|
|
endif
|
|
endif
|
|
|
|
$(OBJDIR)/%.o: %.c
|
|
echo -e "\e[94mCompiling C source file $< ($@)\e[0m"
|
|
$(CC) -c $(BASE_CCFLAGS) $($(CONFIG)_CCFLAGS) $< -o $@
|
|
|
|
$(OBJDIR)/%.o: %.cpp
|
|
echo -e "\e[94mCompiling C++ source file $< ($@)\e[0m"
|
|
$(CC) -c $(BASE_CXXFLAGS) $($(CONFIG)_CXXFLAGS) $< -o $@
|
|
|
|
$(OBJDIR)/%.o: %.S
|
|
echo -e "\e[94mAssembling $< ($@)\e[0m"
|
|
$(CC) -xassembler-with-cpp -c $(BASE_CCFLAGS) $($(CONFIG)_CCFLAGS) $< -o $@
|
|
|
|
$(OBJDIR)/%.o: %.rc
|
|
echo -e "\e[94mCompiling Windows resource script $<\e[0m"
|
|
$(WINDRES) -Iinclude $< -o $@
|
|
|
|
# dir rules
|
|
$(BINDIR)/:
|
|
echo -e "\e[95mMKDIR $@\e[0m"
|
|
mkdir -p $(BINDIR)
|
|
|
|
$(OBJDIR)/:
|
|
echo -e "\e[95mMKDIR $@\e[0m"
|
|
mkdir -p $(OBJDIR)
|