自己写的Makefile, 记录下~

这篇博客记录了如何编写Makefile来构建名为usc.lib的静态库,包括设置源文件路径、包含目录、编译选项等。还涉及到库依赖的头文件和库文件,并给出了清理目标的规则。

#include $(RULE_DIR)/usi.mk

PROJ_DIR=../..
MIDDLEWARE_HDR=$(PROJ_DIR)/MW/hdr  # <-- PROJ_DIR
OAM_PATH=$(PROJ_DIR)/OAM
OAM_DIR=$(PROJ_DIR)/OAM/usi_oam_hdr
NWC_OAM_DIR=$(PROJ_DIR)/OAM/hdr
URC_DIR=$(PROJ_DIR)/URC/Main
LIB_DIR=$(PROJ_DIR)/MW/lib
srcdir = .

CC=g++ -m32

SLIB_NAME   = libusc.a

USI_FLAG=-ggdb -D_DEBUG -DSIMULATE -D__PROFILE_C__ -D_WIMAX_ -DDNS -D_PKMV2_ /
        -DCONCERN_SWITCH_OVER -DSIM -D__SIM__ -DOAM_PHASE_1 -DSIM_X86 -D_OAM_SW_BLOCK_TEST_ /
 -DOVLD -DPLD_VER -D_2008_03_20_NE_LOG_ -D_2008_02_21_PLD_

DEFAULT_INCLUDES= /
    -I. -I$(srcdir) -I$(srcdir)/hdr -I$(MIDDLEWARE_HDR) -I$(OAM_DIR) -I$(OAM_DIR)/oam /
    -I$(OAM_DIR)/oam -I$(OAM_DIR)/msg -I$(OAM_DIR)/acr -I$(OAM_DIR)/rel/USI /
    -I$(NWC_OAM_DIR) -I$(NWC_OAM_DIR)/msg -I$(PROJ_DIR)/common -I$(PROJ_DIR)/USC/Common /
    -I$(OAM_PATH) -I$(OAM_PATH)/sys_hdr -I$(OAM_PATH)/hdr -I$(OAM_PATH)/ofm /
    -I/usr/lib/gnome-libs/include -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 /
    -I/usr/lib/glib/include -I$(PROJ_DIR)/USC/Main /
 -I/usr/X11R6/include -rdynamic


CFLAGS=-m32 ${USI_FLAG} ${DEFAULT_INCLUDES}
 
  
#LIBS= -lxml2 -lz -lpthread -lm -lglib -lstdc++ -lc /
# -lpai -lmds -ldus -lhas -lths -lmfs -lens -lrsi -lOuc -lOpm

OBJECTS=/
 $(OBJDIR)/usc_ct_hdlr.o /
 $(OBJDIR)/ap_init.o /
 $(OBJDIR)/usc_init.o /
 $(OBJDIR)/usc_main.o /
 $(OBJDIR)/usc_mfs.o /
 $(OBJDIR)/usc_oit_func.o /
 $(OBJDIR)/usc_ocm_intf.o /
 $(OBJDIR)/usc_ovld_hdlr.o /
 $(OBJDIR)/usc_odm_intf.o /
 $(OBJDIR)/usc_rev_proc.o /
 $(OBJDIR)/usc_ulm.o /
 $(OBJDIR)/wibro_pai.o /
 $(OBJDIR)/usc_comproc.o /
 $(OBJDIR)/usc_export.o /
 $(OBJDIR)/oix_shell_test.o

${SLIB_NAME}:${OBJECTS}
 @echo "  Building static library $@."
 @$(MKINSTALLDIRS) $(OBJDIR)
 @rm -f $(OBJDIR)/$(SLIB_NAME)
 $(AR) -cvr $(OBJDIR)/${SLIB_NAME}  ${OBJECTS}
 @echo "                        ******************************"
 @echo "                           $@"
 @echo "                        ******************************"

$(OBJDIR)/%.o: %.c
 @echo "  Compiling $@."
 @$(MKINSTALLDIRS) $(OBJDIR)
 $(CC) $(CFLAGS) -o $@ -c $^

clean:
 $(RM) -rf $(OBJDIR)

 

----------------------------------------------------------------------------------------

 

PROJ_DIR=../..
MIDDLEWARE_HDR=$(PROJ_DIR)/MW/hdr
OAM_PATH=$(PROJ_DIR)/OAM
OAM_DIR=$(PROJ_DIR)/OAM/usi_oam_hdr
NWC_OAM_DIR=$(PROJ_DIR)/OAM/hdr
URC_DIR=$(PROJ_DIR)/URC/Main
LIB_DIR=$(PROJ_DIR)/MW/lib
srcdir = .

#CC=g++
CC=purify g++
#CC=purecov g++
EXE=usc.exe
#USI_FLAG=-ggdb -D_DEBUG -DSIMULATE -D__PROFILE_C__ -DOVLD_CONTROL /
 -D_WIMAX_ -DDNS -DCTRC -DOVLD -D_PKMV2_ -DDIAMETER_SUPPORT /
 -D_CELL_DM_ -D__CELL_DM__ -DCONCERN_SWITCH_OVER -DSIM -D__SIM__ /
 -DOAM_PHASE_1 -DSELF_TEST -D__DEBUG__

USI_FLAG=-ggdb -D_DEBUG -DSIMULATE -D__PROFILE_C__ -DOVLD_CONTROL /
        -D_WIMAX_ -DDNS -DCTRC -DOVLD -D_PKMV2_ -DDIAMETER_SUPPORT -DCTRC /
        -D_CELL_DM_ -D__CELL_DM__ -DCONCERN_SWITCH_OVER -DSIM -D__SIM__ /
        -DOAM_PHASE_1 -DSIM_X86 -D_OAM_SW_BLOCK_TEST_ -DPLD_VER -DSELF_TEST -D_2008_03_20_NE_LOG_

DEFAULT_INCLUDES= /
    -I. -I$(srcdir) -I$(srcdir)/hdr -I$(MIDDLEWARE_HDR) -I$(OAM_DIR) -I$(OAM_DIR)/oam /
    -I$(OAM_DIR)/oam -I$(OAM_DIR)/msg -I$(OAM_DIR)/acr -I$(OAM_DIR)/rel/USI /
    -I$(NWC_OAM_DIR) -I$(NWC_OAM_DIR)/msg -I$(PROJ_DIR)/USC/Common /
    -I$(OAM_PATH) -I$(OAM_PATH)/sys_hdr -I$(OAM_PATH)/hdr -I$(OAM_PATH)/ofm /
    -I/usr/lib/gnome-libs/include -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 /
    -I/usr/lib/glib/include /
 -I/usr/X11R6/include -rdynamic


CFLAGS=${USI_FLAG} ${DEFAULT_INCLUDES}
 
  
LIBS= -lxml2 -lz -lpthread -lm -lstdc++ -lc /
 -lpai -lmds -ldus -lhas -lths -lmfs -lens -lrsi -lOuc -lOpm -lLog

OBJ= /
 usc_ct_hdlr.o ap_init.o usc_init.o usc_main.o usc_mfs.o /
 usc_oit_func.o usc_ocm_intf.o usc_ovld_hdlr.o usc_odm_intf.o /
 usc_rev_proc.o usc_ulm.o wibro_pai.o usc_comproc.o usc_export.o oix_shell_test.o

#usc_wsm_func.o usc_tree_backup.o


${EXE}:${OBJ}
 ${CC} -o ${EXE} ${CFLAGS} ${OBJ} ${LIBS}
 @echo ${EXE} is generated...

clean:
 rm ${EXE} ${OBJ}

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值