Advertisement
dominus

Untitled

Apr 27th, 2025
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Make 1.26 KB | None | 0 0
  1. # Compiler and flags
  2. CC = gcc
  3. CXX = g++
  4. CFLAGS = -w
  5. CXXFLAGS = $(CFLAGS) -std=c++20 -I/opt/arm64/include
  6. LDFLAGS = -L/opt/arm64/lib
  7. SYSLIBS = -framework CoreFoundation
  8.  
  9. # Find SDL3 packages using pkg-config
  10. PKGS = sdl3 sdl3-image sdl3-ttf libxml-2.0
  11. CFLAGS += $(shell pkg-config --cflags $(PKGS))
  12. CXXFLAGS += $(shell pkg-config --cflags $(PKGS))
  13. LIBS = $(shell pkg-config --libs $(PKGS))
  14.  
  15. # Directories
  16. SRC_DIR = SDL3Test
  17. OBJ_DIR = obj
  18. BIN_DIR = bin
  19.  
  20. # Find all source files
  21. SRCS = $(wildcard $(SRC_DIR)/*.c) $(wildcard $(SRC_DIR)/*.cpp)
  22. OBJS = $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(filter %.c,$(SRCS))) \
  23.     $(patsubst $(SRC_DIR)/%.cpp,$(OBJ_DIR)/%.o,$(filter %.cpp,$(SRCS)))
  24.  
  25. # Target executable name
  26. TARGET = $(BIN_DIR)/LairwareSDL3
  27.  
  28. # Default target
  29. all: dirs $(TARGET)
  30.  
  31. # Create necessary directories
  32. dirs:
  33.     @mkdir -p $(OBJ_DIR) $(BIN_DIR)
  34.  
  35. # Link object files
  36. $(TARGET): $(OBJS)
  37.     $(CXX) -o $@ $^ $(LDFLAGS) $(LIBS) $(SYSLIBS)
  38.  
  39. # Compile C source files
  40. $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
  41.     $(CC) $(CFLAGS) -c $< -o $@
  42.  
  43. # Compile C++ source files
  44. $(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
  45.     $(CXX) $(CXXFLAGS) -c $< -o $@
  46.  
  47. # Clean up
  48. clean:
  49.     rm -rf $(OBJ_DIR) $(BIN_DIR)
  50.  
  51. # Run the application
  52. run: all
  53.     $(TARGET)
  54.  
  55. .PHONY: all dirs clean run
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement