xp12camera

Owner: IIIlllIIIllI URL: git@github.com:nyangkosense/xp12camera.git

Makefile

# Makefile for X-Plane 12 FLIR Camera Plugin
# Cross-compilation for Windows using MinGW

# Compiler settings
CC = x86_64-w64-mingw32-gcc
CXX = x86_64-w64-mingw32-g++

PLUGIN_NAME = FLIR_Camera
OUTPUT_DIR = build
PLUGIN_DIR = $(OUTPUT_DIR)/$(PLUGIN_NAME)
PLUGIN_FILE = $(PLUGIN_DIR)/win_x64/$(PLUGIN_NAME).xpl

SDK_DIR = SDK
INCLUDE_DIRS = -I$(SDK_DIR)/CHeaders/XPLM -I$(SDK_DIR)/CHeaders/Widgets
LIB_DIR = $(SDK_DIR)/Libraries/Win
LIBS = -L$(LIB_DIR) -lXPLM_64 -lXPWidgets_64

CXXFLAGS = -std=c++11 -Wall -O2 -fPIC -DXPLM200=1 -DXPLM210=1 -DXPLM300=1 -DXPLM301=1 -DXPLM302=1 -DXPLM400=1
CXXFLAGS += $(INCLUDE_DIRS)
CXXFLAGS += -DIBM=1 -DWIN32=1 -D_WIN32=1

LDFLAGS = -shared -static-libgcc -static-libstdc++
LDFLAGS += -Wl,--kill-at -Wl,--no-undefined
LDFLAGS += $(LIBS)
LDFLAGS += -lopengl32 -lgdi32

SOURCES = FLIR_Camera.cpp FLIR_SimpleLock.cpp FLIR_VisualEffects.cpp

OBJECTS = $(SOURCES:.cpp=.o)

all: directories $(PLUGIN_FILE)
# Create necessary directories
directories:
	@mkdir -p $(PLUGIN_DIR)/win_x64

$(PLUGIN_FILE): $(OBJECTS)
	$(CXX) $(OBJECTS) $(LDFLAGS) -o $@
	@echo "Plugin built successfully: $@"

%.o: %.cpp
	$(CXX) $(CXXFLAGS) -c $< -o $@

clean:
	rm -f $(OBJECTS)
	rm -rf $(OUTPUT_DIR)

# Install to X-Plane (adjust path as needed)
install: $(PLUGIN_FILE)
	@echo "To install, copy the entire '$(PLUGIN_DIR)' folder to your X-Plane/Resources/plugins/ directory"

# Test compilation without linking
test-compile:
	$(CXX) $(CXXFLAGS) -c $(SOURCES)
	@echo "Compilation test successful"

.PHONY: all clean install directories test-compile