NWPlayer123 icon

fUCK Makefiles

NWPlayer123 | PRO | 06/27/19 08:22:34 AM UTC | 0 ⭐ | 8740 👁️ | Never ⏰ | []
Make |

1.52 KB

|

None

|

0 👍

/

0 👎

####### Globals #######
CC = gcc
CXX = g++
EXT = .exe
 
####### Folder names + output name #######
TARGET      :=  $(notdir $(CURDIR))
BUILD       :=  build
SOURCES     :=  src
DATA        :=  data
INCLUDES    :=  include
 
####### Compile flags #######
CFLAGS      = -I./include/ -g -O2 -Wall -Wextra $(INCLUDE)
CXXFLAGS    = $(CFLAGS) -std=c++17
LDFLAGS     =
 
####### Find all compilable files #######
FILES_C     :=  $(shell find . -name *.c)
FILES_CPP   :=  $(shell find . -name *.cpp)
FILES_SRC   :=  $(shell find . -name *.s)
 
####### Generate list of all .o files #######
OBJS_C      :=  $(foreach file,$(FILES_C),./$(BUILD)/$(subst ./$(SOURCES)/,,$(file:%.c=%.o)))
OBJS_CPP    :=  $(foreach file,$(FILES_CPP),./$(BUILD)/$(subst ./$(SOURCES)/,,$(file:%.cpp=%.o)))
OBJS_SRC    :=  $(foreach file,$(FILES_SRC),./$(BUILD)/$(subst ./$(SOURCES)/,,$(file:%.s=%.o)))
 
####### Rules #######
all: $(BUILD)
.PHONY: clean all
 
####### Link and output .exe #######
$(BUILD): $(OBJS_C) $(OBJS_CPP) $(OBJS_SRC)
    @echo output ... $(TARGET)$(EXT)
    @$(CXX) $(LDFLAGS) -o $(TARGET) $(OBJS_C) $(OBJS_CPP) $(OBJS_SRC)
 
####### Compile .cpp to .o #######
$(OBJS_CPP): $(FILES_CPP)
    @echo $(notdir $<)
    @mkdir -p $(dir $@)
    @$(CXX) $(FLAGS) $(CXXFLAGS) -c -o $@ $<
 
####### Compile .s to .o #######
$(OBJS_SRC): $(FILES_SRC)
    @echo $(notdir $<)
    @mkdir -p $(dir $@)
    @$(CC) $(CFLAGS) -c -o $@ $<
 
####### Compile .c to .o #######
$(OBJS_C): $(FILES_C)
    @echo $(notdir $<)
    @mkdir -p $(dir $@)
    @$(CC) $(CFLAGS) -c -o $@ $<
 
clean:
    rm -rf $(BUILD)
    rm -rf $(TARGET)$(EXT)

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎