Makefile 질문입니다.

익명 사용자의 이미지

Makefile의 내용이

PROG = test1
OBJS = test1.o

all$(PROG)

$(PROG) $(OBJS)
$(CC) -o $@ $(OBJS)

로 되어있다고 할 때요,

DEF = TEST

부분을 추가시켜서 -D 옵션을 주고 싶습니다.
즉, 열거하면

gcc -o test1 test1.c -DTEST

로 하고 싶은데요, 저 위의 방법으로는 영 신통치가 않네요..

어떤 방법이 있는지 알고 싶습니다.

익명 사용자의 이미지

저는 이런식으로 사용합니다..

CFLAGS에 추가로 필요한것을 적용하면 되겠죠

LD_HOME = $(HOME)
SYSTEM_INCL =
COMMON_INCL = -I$(LD_HOME)/include
LOCAL_INCL = -I$(LD_HOME)/src/include
INCLUDE = $(LOCAL_INCL) $(COMMON_INCL) $(SYSTEM_INCL)

SYSTEM_LIB_PATH =
COMMON_LIB_PATH = -L$(LD_HOME)/lib
LOCAL_LIBPATH =
LIB_PATH = $(SYSTEM_LIB_PATH) $(COMMON_LIB_PATH) $(LOCAL_LIB_PATH)

CFLAGS = -g -c $(INCLUDE) -DTEST

SYSTEM_LIBS =
RDB_LIBS =
COMMON_LIBS = -levent
LOCAL_LIBS =
LIBS = $(LOCAL_LIBS) $(COMMON_LIBS) $(RDB_LIBS) $(SYSTEM_LIBS)

.SUFFIXES .c .o

.c.o
$(CC) $(CFLAGS) $*.c

OBJS = test.o test_func.o

all test

test $(OBJS)
$(CC) -o $@ $(OBJS) $(LIB_PATH) $(LIBS)
strip $@
mv $@ $(LD_HOME)/bin/.

clean
rm -f *.o core chaos

익명 사용자의 이미지

-D를 CPPFLAGSS에 지정하는 겁니다. CFLAGS는
컴파일시에 오버라이드될 수 있거든요.

CFLAGS=-g -O2
CPPFLAGS=-DSOMEDEF