chore: acquire-core migration monorepo (legacy C + Spring Boot target skeleton)
Some checks failed
ci / build (push) Failing after 2s
Some checks failed
ci / build (push) Failing after 2s
TxCore/ECPG legacy 매입·정산 C 슬라이스(빌드검증) + Spring Boot 멀티모듈 골격(mvn test green) + MIGRATION.md 전환룰 + CI(boot 빌드).
This commit is contained in:
commit
ff0b0b60a2
31 changed files with 2208 additions and 0 deletions
120
legacy/Makefile
Normal file
120
legacy/Makefile
Normal file
|
|
@ -0,0 +1,120 @@
|
|||
# ==========================================================================
|
||||
# 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)
|
||||
Reference in a new issue