make for compiling - 所有* .c文件

时间:2013-10-18 14:42:23

标签: linux makefile

要编译两个文件,我创建了一个makefile,用于提及对象名称。

OBJ = led-player_backup.o led-player.o

现在,如果我的文件夹包含100个文件,我必须在makefile中写入100个对象的名称。在这种情况下是否可以编写一些模式规则来为所有* .c文件创建目标文件。

这是我原来的makefile。要在其中修改什么来实现同样的目标?

# ----------------------------------------------------------------------------
# Makefile for building tapp
#
# Copyright 2010 FriendlyARM (http://www.arm9.net/)
#

ifndef DESTDIR
DESTDIR            ?= /opt/FriendlyARM/tiny6410/linux/rootfs_qtopia_qt4
endif

CFLAGS              = -Wall -O2  # wall is for warning show and 02 is optiminisation level 2
CC                    = arm-linux-gcc   # compiler name
INSTALL             = install         # 

TARGET              = led-player

OBJ = led-player_backup.o led-player.o

#all: $(TARGET) 

all: $(OBJ)


%.o : %.c
    $(CC) $(CFLAGS) $< -o $@

#$< -o $@


install: $(TARGET)
    $(INSTALL) $^ $(DESTDIR)/usr/bin

clean :
    rm -rf *.o $(TARGET)


# ----------------------------------------------------------------------------

.PHONY: $(PHONY) install clean

# End of file
# vim: syntax=make

1 个答案:

答案 0 :(得分:0)

尝试:

OBJ := $(patsubst %.c,%.o,$(wildcard *.c))