fissh

termios terminal aquarium. demo at ssh://fish@kloet.net
Download | Log | Files | Refs

Makefile (874B)


      1 CXX = c++
      2 CXXFLAGS = -Wall -Wextra -O3 -Isrc
      3 LDFLAGS = -static
      4 SRC_DIR = src
      5 OBJ_DIR = build
      6 BIN_DIR = bin
      7 SRC_EXT = cpp
      8 OBJ_EXT = o
      9 
     10 # Find all source files recursively in subdirectories
     11 SOURCES = $(shell find $(SRC_DIR) -name '*.$(SRC_EXT)')
     12 # Create corresponding object files maintaining directory structure
     13 OBJECTS = $(SOURCES:$(SRC_DIR)/%.$(SRC_EXT)=$(OBJ_DIR)/%.$(OBJ_EXT))
     14 EXEC = $(BIN_DIR)/fissh
     15 
     16 # Get all unique subdirectories for build structure
     17 OBJ_DIRS = $(sort $(dir $(OBJECTS)))
     18 
     19 all: $(EXEC)
     20 
     21 $(EXEC): $(OBJECTS)
     22 	@mkdir -p $(BIN_DIR)
     23 	$(CXX) $(OBJECTS) -o $(EXEC) $(LDFLAGS)
     24 
     25 # Create object files, maintaining directory structure
     26 $(OBJ_DIR)/%.$(OBJ_EXT): $(SRC_DIR)/%.$(SRC_EXT)
     27 	@mkdir -p $(dir $@)
     28 	$(CXX) $(CXXFLAGS) -c $< -o $@
     29 
     30 clean:
     31 	rm -rf $(OBJ_DIR) $(BIN_DIR)
     32 
     33 install: $(EXEC)
     34 	install -m 755 $(EXEC) /usr/local/bin/
     35 
     36 .PHONY: all clean install