Files
jtlPosSync/jtlsrv-cpp/Makefile
2026-07-14 23:30:16 +02:00

90 lines
1.9 KiB
Makefile

CXX := g++
CC := gcc
PKGFLAGS := $(shell pkg-config --cflags libuv openssl vips)
PKGLIBS := $(shell pkg-config --libs libuv openssl vips)
BUILD_DIR := build
BINARY := jtlsrv
CXXFLAGS := -std=c++17 -Wall -Wextra -Isrc -Ivendor $(PKGFLAGS)
CFLAGS := -Wall -Ivendor
LDFLAGS := $(PKGLIBS) -lodbc -pthread
ifeq ($(DEBUG),1)
CXXFLAGS := -std=c++17 -Wall -Wextra -g -O0 -Isrc -Ivendor $(PKGFLAGS)
CFLAGS := -Wall -g -O0 -Ivendor
else
CXXFLAGS += -O2
CFLAGS += -O2
endif
CPP_SRCS := \
src/main.cpp \
src/log.cpp \
src/http.cpp \
src/tls_server.cpp \
src/pairing.cpp \
src/router.cpp \
src/endpoints/client.cpp \
src/endpoints/init.cpp \
src/endpoints/category.cpp \
src/endpoints/product.cpp \
src/endpoints/productcomposite.cpp \
src/endpoints/deleted_entity.cpp \
src/endpoints/customergroup.cpp \
src/endpoints/order.cpp \
src/endpoints/pimage.cpp \
src/endpoints/cimage.cpp \
src/db/pool.cpp \
src/queries/shop.cpp \
src/request_log.cpp \
src/order_log.cpp
C_SRCS := \
vendor/llhttp.c \
vendor/api.c \
vendor/http.c
CPP_OBJS := $(patsubst src/%.cpp,$(BUILD_DIR)/src/%.o,$(CPP_SRCS))
C_OBJS := $(patsubst vendor/%.c,$(BUILD_DIR)/vendor/%.o,$(C_SRCS))
OBJS := $(CPP_OBJS) $(C_OBJS)
.PHONY: all debug clean rebuild run help
all: $(BINARY)
debug:
$(MAKE) DEBUG=1 all
$(BINARY): $(OBJS)
@mkdir -p $(BUILD_DIR)
$(CXX) $(OBJS) -o $@ $(LDFLAGS)
$(BUILD_DIR)/src/%.o: src/%.cpp
@mkdir -p $(dir $@)
$(CXX) $(CXXFLAGS) -c $< -o $@
$(BUILD_DIR)/vendor/%.o: vendor/%.c
@mkdir -p $(dir $@)
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -rf $(BUILD_DIR) $(BINARY)
rebuild: clean all
run: all
@mkdir -p logs
./$(BINARY)
help:
@echo "Usage: make [target]"
@echo ""
@echo " all Build $(BINARY) (default)"
@echo " debug Build with -g -O0"
@echo " clean Remove $(BUILD_DIR)/"
@echo " rebuild clean + all"
@echo " run Build and start the server"
@echo ""
@echo "Variables: DEBUG=1"