Top/Prog/make

目次

デバッグシンボルの分離

目的

Makefile の実施例

SHELL = /bin/sh

PROG = OOO
PROG_SYMBOL = $(PROG).sym

CXXFLAGS  = \
	-Wall \

LDFLAGS  = \
	-lstdc++ \



CXXFLAGS_DEBUG = -ggdb -D_DEBUG_
CXXFLAGS_RELEASE = -O2

LDFLAGS_DEBUG = 
LDFLAGS_RELEASE = 



SRCSCPP = \
	a.C \
	b.C \
	c.C \
	main.C \


SRCS =  $(SRCSCPP)

OBJCPP  = $(SRCSCPP:.C=.o)
OBJS =  $(OBJCPP)

# Rules & Program stuff
MAKE    = make
CXX     = g++
CPP     = g++ -E
RM      = /bin/rm
RMF     = $(RM) -f
CP      = /bin/cp
AR      = /usr/bin/ar
ARQ     = $(AR) -q
STRIP   = /usr/bin/strip
OBJCOPY = /usr/bin/objcopy
OBJCOPY_ONLY_KEEP_DEBUG = $(OBJCOPY) --only-keep-debug

ROOT_DEV = CURRENT


all:
	@echo "WARNING: Available make target is: dbg rel clean";
dbg: build-dbg strip-symbol
rel: build-rel strip-symbol
clean :
	$(RMF) $(OBJS) $(PROG) $(PROG_SYMBOL)


build-dbg: LDFLAGS += $(LDFLAGS_DEBUG)
build-dbg: CXXFLAGS += $(CXXFLAGS_DEBUG)
build-dbg: $(PROG)

build-rel: LDFLAGS += $(LDFLAGS_RELEASE)
build-rel: CXXFLAGS += $(CXXFLAGS_RELEASE)
build-rel: $(PROG)

$(PROG) : $(OBJS)
	$(CXX) -o $(PROG) $(OBJS) $(CXXFLAGS) $(LDFLAGS)

strip-symbol: $(PROG)
	@echo "Stripping symbols"
	$(OBJCOPY_ONLY_KEEP_DEBUG) $(PROG) $(PROG_SYMBOL)
	$(STRIP) $(PROG)

シェルコマンドの結果を得る


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS