feat: acquire-core full legacy C corpus (~2066 files, build-verified) + generator + inventory
This commit is contained in:
commit
b96cf702ee
2897 changed files with 264970 additions and 0 deletions
113
Makefile
Normal file
113
Makefile
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
# ==========================================================================
|
||||
# acquire-core-full / TxCore Makefile (생성기 산출물)
|
||||
#
|
||||
# .pgc --ecpg--> .c --gcc--> build/*.o --ar--> libtxcore.a --ld--> bin/*
|
||||
#
|
||||
# ~1000개 .c/.pgc 를 build/*.o 로 컴파일하는 것이 빌드 검증의 핵심.
|
||||
# 와일드카드로 전체 소스를 수집하고, 대표 데모 바이너리 몇 개를 링크한다.
|
||||
# ==========================================================================
|
||||
CC := gcc
|
||||
ECPG := ecpg
|
||||
AR := ar
|
||||
PG_INCDIR := $(shell pg_config --includedir 2>/dev/null)
|
||||
|
||||
INCLUDES := -Iframework/txcore/include \
|
||||
-Iframework/txcore/dbio \
|
||||
-Iapp/include \
|
||||
-Iapp/shared/include \
|
||||
-I$(PG_INCDIR)
|
||||
|
||||
# 고정길이 관용구 경고만 억제 (-Werror 없음)
|
||||
CFLAGS := -g -O2 -Wall -Wextra -Wno-unused-parameter \
|
||||
-Wno-stringop-truncation -Wno-format-truncation \
|
||||
-Wno-unused-variable -Wno-unused-but-set-variable $(INCLUDES)
|
||||
ECPGFLAGS := -Iframework/txcore/include -Iframework/txcore/dbio \
|
||||
-Iapp/include -Iapp/shared/include
|
||||
LDLIBS := -lecpg -lpq
|
||||
|
||||
BUILD := build
|
||||
BIN := bin
|
||||
|
||||
# ---- 소스 수집 (와일드카드) ----------------------------------------------
|
||||
ONLINE_PGC := $(wildcard app/online/*.pgc)
|
||||
BATCH_PGC := $(wildcard app/batch/*.pgc)
|
||||
DBIO_PGC := $(wildcard app/dbio/*.pgc)
|
||||
COMMON_C := $(wildcard app/common/*.c)
|
||||
SHARED_C := $(wildcard app/shared/common/*.c)
|
||||
|
||||
PGC_ALL := $(ONLINE_PGC) $(BATCH_PGC) $(DBIO_PGC)
|
||||
GEN_C := $(PGC_ALL:.pgc=.c)
|
||||
|
||||
PGC_OBJ := $(patsubst %,$(BUILD)/%.o,$(basename $(notdir $(PGC_ALL))))
|
||||
COMMON_OBJ := $(patsubst %,$(BUILD)/%.o,$(basename $(notdir $(COMMON_C))))
|
||||
SHARED_OBJ := $(patsubst %,$(BUILD)/%.o,$(basename $(notdir $(SHARED_C))))
|
||||
ALL_OBJ := $(PGC_OBJ) $(COMMON_OBJ) $(SHARED_OBJ)
|
||||
|
||||
LIBTXCORE := $(BUILD)/libtxcore.a
|
||||
|
||||
DEMO_BINS := $(BIN)/demo_mg_server $(BIN)/demo_ac_server $(BIN)/demo_rc_server $(BIN)/demo_st_server $(BIN)/demo_rc_batch $(BIN)/demo_cl_batch
|
||||
|
||||
.SECONDARY:
|
||||
.PHONY: all clean dirs gen objs demos
|
||||
|
||||
all: dirs $(LIBTXCORE) objs demos
|
||||
@echo "==> 빌드 완료"
|
||||
@echo "오브젝트: $(words $(ALL_OBJ)) 개"
|
||||
|
||||
dirs:
|
||||
@mkdir -p $(BUILD) $(BIN)
|
||||
|
||||
gen: $(GEN_C)
|
||||
objs: $(ALL_OBJ)
|
||||
demos: $(DEMO_BINS)
|
||||
|
||||
# ---- ecpg: .pgc -> .c (디렉토리별) ---------------------------------------
|
||||
app/online/%.c: app/online/%.pgc
|
||||
$(ECPG) $(ECPGFLAGS) -o $@ $<
|
||||
app/batch/%.c: app/batch/%.pgc
|
||||
$(ECPG) $(ECPGFLAGS) -o $@ $<
|
||||
app/dbio/%.c: app/dbio/%.pgc
|
||||
$(ECPG) $(ECPGFLAGS) -o $@ $<
|
||||
|
||||
# ---- 컴파일: build/<basename>.o (gen 선행 보장) --------------------------
|
||||
$(BUILD)/%.o: app/online/%.c | gen
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
$(BUILD)/%.o: app/batch/%.c | gen
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
$(BUILD)/%.o: app/dbio/%.c | gen
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
$(BUILD)/%.o: app/common/%.c
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
$(BUILD)/%.o: app/shared/common/%.c
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
|
||||
# ---- TxCore 정적 라이브러리 ----------------------------------------------
|
||||
$(BUILD)/txcore.o: framework/txcore/src/txcore.c
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
$(LIBTXCORE): $(BUILD)/txcore.o
|
||||
$(AR) rcs $@ $^
|
||||
|
||||
# ---- 대표 데모 바이너리 (링크 검증) --------------------------------------
|
||||
$(BIN)/demo_mg_server: $(BUILD)/demo_mg_main.o $(BUILD)/mg_ol_0001.o $(BUILD)/mg_dbio_main.o $(SHARED_OBJ) $(LIBTXCORE)
|
||||
$(CC) $(CFLAGS) -o $@ $(BUILD)/demo_mg_main.o $(BUILD)/mg_ol_0001.o $(BUILD)/mg_dbio_main.o $(SHARED_OBJ) -L$(BUILD) -ltxcore $(LDLIBS)
|
||||
|
||||
$(BIN)/demo_ac_server: $(BUILD)/demo_ac_main.o $(BUILD)/ac_ol_0001.o $(BUILD)/ac_dbio_main.o $(SHARED_OBJ) $(LIBTXCORE)
|
||||
$(CC) $(CFLAGS) -o $@ $(BUILD)/demo_ac_main.o $(BUILD)/ac_ol_0001.o $(BUILD)/ac_dbio_main.o $(SHARED_OBJ) -L$(BUILD) -ltxcore $(LDLIBS)
|
||||
|
||||
$(BIN)/demo_rc_server: $(BUILD)/demo_rc_main.o $(BUILD)/rc_ol_0001.o $(BUILD)/rc_dbio_main.o $(SHARED_OBJ) $(LIBTXCORE)
|
||||
$(CC) $(CFLAGS) -o $@ $(BUILD)/demo_rc_main.o $(BUILD)/rc_ol_0001.o $(BUILD)/rc_dbio_main.o $(SHARED_OBJ) -L$(BUILD) -ltxcore $(LDLIBS)
|
||||
|
||||
$(BIN)/demo_st_server: $(BUILD)/demo_st_main.o $(BUILD)/st_ol_0001.o $(BUILD)/st_dbio_main.o $(SHARED_OBJ) $(LIBTXCORE)
|
||||
$(CC) $(CFLAGS) -o $@ $(BUILD)/demo_st_main.o $(BUILD)/st_ol_0001.o $(BUILD)/st_dbio_main.o $(SHARED_OBJ) -L$(BUILD) -ltxcore $(LDLIBS)
|
||||
|
||||
$(BIN)/demo_rc_batch: $(BUILD)/rc_bt_0001.o $(BUILD)/rc_dbio_main.o $(SHARED_OBJ) $(LIBTXCORE)
|
||||
$(CC) $(CFLAGS) -o $@ $(BUILD)/rc_bt_0001.o $(BUILD)/rc_dbio_main.o $(SHARED_OBJ) -L$(BUILD) -ltxcore $(LDLIBS)
|
||||
|
||||
$(BIN)/demo_cl_batch: $(BUILD)/cl_bt_0001.o $(BUILD)/cl_dbio_main.o $(SHARED_OBJ) $(LIBTXCORE)
|
||||
$(CC) $(CFLAGS) -o $@ $(BUILD)/cl_bt_0001.o $(BUILD)/cl_dbio_main.o $(SHARED_OBJ) -L$(BUILD) -ltxcore $(LDLIBS)
|
||||
|
||||
# ==========================================================================
|
||||
clean:
|
||||
rm -rf $(BUILD) $(BIN)
|
||||
rm -f $(GEN_C)
|
||||
|
||||
Reference in a new issue