Skip to content

Commit

Permalink
clang still isn't happy, or maybe it's apple make?
Browse files Browse the repository at this point in the history
  • Loading branch information
bbbradsmith committed Apr 21, 2024
1 parent f1b0abd commit 41dd86f
Showing 1 changed file with 15 additions and 7 deletions.
22 changes: 15 additions & 7 deletions core/makefile
Original file line number Diff line number Diff line change
Expand Up @@ -13,26 +13,34 @@ OBJS = $(addprefix $(CORE_INTDIR)/,$(SRCS:.cpp=.o))
DEPS = $(addprefix $(CORE_INTDIR)/,$(SRCS:.cpp=.d))
CXXFLAGS_ALL = $(CXXFLAGS) $(CXXFLAGS_EXTRA) $(INC_COMMON)

# precompiled header

PCH_H = core.h
PCH_BUILD = pch.cpp
PCH_DECOY = $(CORE_INTDIR)/$(CORE_NAME).h
PCH = $(PCH_DECOY)$(PCH_SUFFIX)
PCHFLAGS = $(PCH_USE) $(PCH_DECOY)$(PCH_USE_SUFFIX)

$(TARGET): $(OBJS) | $(dir $(TARGET))
rm -f $(TARGET)
$(AR) rcs $(TARGET) $(OBJS)

$(PCH_DECOY): | $(CORE_INTDIR)/
echo "#error \"Precompiled header decoy $(notdir $(PCH_DECOY)) used instead of $(notdir $(PCH))\"" > $@

$(PCH): $(PCH_BUILD) $(PCH_DECOY) $(PCH_H) | $(CORE_INTDIR)/
$(PCH).d: $(PCH_BUILD) | $(CORE_INTDIR)/
$(CXX) -M -MM -MF $@ -MT $(PCH) $(CXXFLAGS_ALL) -c $<

$(PCH): $(PCH_BUILD) $(PCH_DECOY) $(PCH).d | $(CORE_INTDIR)/
$(CXX) $(PCH_COMPILE) -o $(PCH) $(CXXFLAGS_ALL) -c $(PCH_BUILD)

# target build

$(TARGET): $(OBJS) | $(dir $(TARGET))
rm -f $(TARGET)
$(AR) rcs $(TARGET) $(OBJS)

# want $(PCHFLAGS) here but gcc does not appear to be able to use precompiled headers for -MF
$(CORE_INTDIR)/%.d: %.cpp $(PCH) | $(CORE_INTDIR)/
$(CXX) -M -MM -MF $@ -MT $(CORE_INTDIR)/$(basename $<).o $(CXXFLAGS_ALL) -c $<

$(CORE_INTDIR)/%.o: %.cpp $(CORE_INTDIR)/%.d | $(CORE_INTDIR)/
$(CORE_INTDIR)/%.o: %.cpp $(CORE_INTDIR)/%.d $(PCH) | $(CORE_INTDIR)/
$(CXX) -o $@ $(PCHFLAGS) $(CXXFLAGS_ALL) -c $<

$(CORE_INTDIR)/:
Expand All @@ -45,4 +53,4 @@ clean:
rm -rf $(CORE_INTDIR)
rm -rf $(dir $(TARGET))

include $(DEPS)
include $(PCH).d $(DEPS)

0 comments on commit 41dd86f

Please sign in to comment.