免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8972 | 回复: 3
打印 上一主题 下一主题

请教makefile中如何表示换行 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-11 10:40 |只看该作者 |倒序浏览
这两天琢磨想自动生成一个makefile,我用了SED个命令(琢磨了两天啊)替换换行哪儿,我单独执行可以看到想要的结果,但是放在makefile中$s/\n//的\n被当成了2个字符而不是一个换行,在makefile中怎么表示换行呢?
ifndef CFG
        CFG := debug
else
        ifneq ($(CFG), release)
                CFG := debug
        endif
endif

ifeq ($(CFG), debug)
        DBGFLAGS := -g
        DBGMFLAGS := -DDEBUG
else
        DBGFLAGS :=
        DBGMFLAGS := -DNDEBUG
endif


CC = armcc
ASM = armasm
LD = armlink
AR = armar

ARCH = -cpu ARM7TDMI

COMMONDIR = ../../common
TXDIR            = $(COMMONDIR)/threadx
INCLUDES         = -I$(TXDIR)

ASFLAGS         = -keep $(DBGFLAGS) $(ARCH)
CFLAGS                 = -c $(DBGFLAGS) $(ARCH)
LDFLAGS         = -info totals -elf -d -Remove -map -symbols

OBJDIR                 = $(CFG)/obj
TXCSRC                 = $(wildcard $(TXDIR)/*.c)
TXSSRC                 = $(wildcard $(TXDIR)/*.s)
TXOBJS                = $(patsubst %.c, $(OBJDIR)/%.o, $(notdir $(TXCSRC)))
TXLIB                 = $(OBJDIR)/tx.lib

ALL:HEAD $(TXOBJS)
        @echo #

HEAD:
        @echo ALL=$(TXLIB)
        @echo.
        @echo $(TXLIB)(TXOBJS)
        @echo                $(AR) -create $(TXLIB) $(TXOBJS)
        @echo.
       
$(OBJDIR)/%.o: $(TXDIR)/%.c
        @$(CC) -M $(DBGMFLAGS) $(CFLAGS) $(INCLUDES) $< -o $@ > $@.d
        @sed -n 's:\:/:g;1!s/^.*://;H;$$g;$$s/\n//g;$$p' $@.d
        @rm $@.d
        @echo         $(CC) $(DBGMFLAGS) $(CFLAGS) $(INCLUDES) $< -o $@
        @echo.

论坛徽章:
0
2 [报告]
发表于 2008-07-11 10:44 |只看该作者
自己顶一下

论坛徽章:
0
3 [报告]
发表于 2008-07-11 10:49 |只看该作者
有automake一套东西。

论坛徽章:
0
4 [报告]
发表于 2008-07-11 11:16 |只看该作者
记得用引号把s/\n//括起来,否则会被当成n的。
sed默认处理的是^$中间的东西,\n是在$后面,所以sed没发处理到。你可以用cat urfile|tr -d '\n'来删除所有的回车。

[ 本帖最后由 walkerxk 于 2008-7-11 11:19 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP