Some checks failed
ci / build (push) Failing after 2s
TxCore/ECPG legacy 매입·정산 C 슬라이스(빌드검증) + Spring Boot 멀티모듈 골격(mvn test green) + MIGRATION.md 전환룰 + CI(boot 빌드).
120 lines
4.2 KiB
Makefile
120 lines
4.2 KiB
Makefile
# ==========================================================================
|
|
# acquire-core / TxCore Makefile
|
|
#
|
|
# .pgc --ecpg--> .c --gcc--> .o --ld--> 실행파일
|
|
#
|
|
# 산출물:
|
|
# build/libtxcore.a TxCore 공통 프레임워크 정적 라이브러리
|
|
# bin/acquire-core-server 온라인 서비스 등록 데모 (링크 검증)
|
|
# bin/rc_match_batch 승인-매입 대사 배치
|
|
# ==========================================================================
|
|
|
|
CC := gcc
|
|
ECPG := ecpg
|
|
AR := ar
|
|
PG_INCDIR := $(shell pg_config --includedir 2>/dev/null)
|
|
|
|
# 헤더 검색 경로 (프레임워크 + 업무 + PostgreSQL/ecpglib/sqlca)
|
|
INCLUDES := -Iframework/txcore/include \
|
|
-Iframework/txcore/dbio \
|
|
-Iapp/include \
|
|
-I$(PG_INCDIR)
|
|
|
|
# 고정길이 필드 strncpy/snprintf 는 의도된 관용구이므로 해당 경고만 억제
|
|
CFLAGS := -g -O2 -Wall -Wextra -Wno-unused-parameter \
|
|
-Wno-stringop-truncation -Wno-format-truncation $(INCLUDES)
|
|
# ecpg 는 자체 전처리기이므로 -I 로 EXEC SQL INCLUDE 및 헤더 경로를 제공
|
|
ECPGFLAGS := -Iframework/txcore/include -Iframework/txcore/dbio -Iapp/include
|
|
LDLIBS := -lecpg -lpq
|
|
|
|
BUILD := build
|
|
BIN := bin
|
|
|
|
# ---- 소스 목록 ------------------------------------------------------------
|
|
TXCORE_SRC := framework/txcore/src/txcore.c
|
|
COMMON_SRC := app/common/util_date.c \
|
|
app/common/util_amount.c \
|
|
app/common/util_msg.c
|
|
|
|
# ECPG 전처리 대상
|
|
DBIO_PGC := app/dbio/purchase_dbio.pgc
|
|
SVC_PGC := app/online/mg_recv_svc.pgc \
|
|
app/online/ac_intake_svc.pgc
|
|
BATCH_PGC := app/batch/rc_match_batch.pgc
|
|
|
|
# .pgc -> 생성 .c
|
|
DBIO_GEN := $(DBIO_PGC:.pgc=.c)
|
|
SVC_GEN := $(SVC_PGC:.pgc=.c)
|
|
BATCH_GEN := $(BATCH_PGC:.pgc=.c)
|
|
|
|
# ---- 오브젝트 -------------------------------------------------------------
|
|
TXCORE_OBJ := $(BUILD)/txcore.o
|
|
COMMON_OBJ := $(patsubst app/common/%.c,$(BUILD)/%.o,$(COMMON_SRC))
|
|
DBIO_OBJ := $(BUILD)/purchase_dbio.o
|
|
SVC_OBJ := $(BUILD)/mg_recv_svc.o $(BUILD)/ac_intake_svc.o
|
|
SERVER_OBJ := $(BUILD)/server_main.o
|
|
BATCH_OBJ := $(BUILD)/rc_match_batch.o
|
|
|
|
LIBTXCORE := $(BUILD)/libtxcore.a
|
|
|
|
SERVER_BIN := $(BIN)/acquire-core-server
|
|
BATCH_BIN := $(BIN)/rc_match_batch
|
|
|
|
# ==========================================================================
|
|
.PHONY: all clean dirs gen
|
|
all: dirs $(LIBTXCORE) $(SERVER_BIN) $(BATCH_BIN)
|
|
@echo "==> 빌드 완료"
|
|
@ls -la $(LIBTXCORE) $(SERVER_BIN) $(BATCH_BIN)
|
|
|
|
dirs:
|
|
@mkdir -p $(BUILD) $(BIN)
|
|
|
|
# ---- ecpg: .pgc -> .c -----------------------------------------------------
|
|
%.c: %.pgc
|
|
$(ECPG) $(ECPGFLAGS) -o $@ $<
|
|
|
|
gen: $(DBIO_GEN) $(SVC_GEN) $(BATCH_GEN)
|
|
|
|
# ---- TxCore 정적 라이브러리 ----------------------------------------------
|
|
$(TXCORE_OBJ): $(TXCORE_SRC)
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
$(LIBTXCORE): $(TXCORE_OBJ)
|
|
$(AR) rcs $@ $^
|
|
|
|
# ---- 공통 유틸 오브젝트 ---------------------------------------------------
|
|
$(BUILD)/%.o: app/common/%.c
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
# ---- ECPG 생성 .c 컴파일 --------------------------------------------------
|
|
$(DBIO_OBJ): $(DBIO_GEN)
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
$(BUILD)/mg_recv_svc.o: app/online/mg_recv_svc.c
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
$(BUILD)/ac_intake_svc.o: app/online/ac_intake_svc.c
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
$(BATCH_OBJ): $(BATCH_GEN)
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
# ---- server_main (plain C) ------------------------------------------------
|
|
$(SERVER_OBJ): app/online/server_main.c
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
# ---- 링크 -----------------------------------------------------------------
|
|
# 온라인 서버: 서비스들 + 공통 + DBIO + TxCore
|
|
$(SERVER_BIN): $(SERVER_OBJ) $(SVC_OBJ) $(DBIO_OBJ) $(COMMON_OBJ) $(LIBTXCORE)
|
|
$(CC) $(CFLAGS) -o $@ $(SERVER_OBJ) $(SVC_OBJ) $(DBIO_OBJ) $(COMMON_OBJ) \
|
|
-L$(BUILD) -ltxcore $(LDLIBS)
|
|
|
|
# 배치: 배치 + DBIO + 공통 + TxCore
|
|
$(BATCH_BIN): $(BATCH_OBJ) $(DBIO_OBJ) $(COMMON_OBJ) $(LIBTXCORE)
|
|
$(CC) $(CFLAGS) -o $@ $(BATCH_OBJ) $(DBIO_OBJ) $(COMMON_OBJ) \
|
|
-L$(BUILD) -ltxcore $(LDLIBS)
|
|
|
|
# ==========================================================================
|
|
clean:
|
|
rm -rf $(BUILD) $(BIN)
|
|
rm -f $(DBIO_GEN) $(SVC_GEN) $(BATCH_GEN)
|