要编译两个文件,我创建了一个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
答案 0 :(得分:0)
尝试:
OBJ := $(patsubst %.c,%.o,$(wildcard *.c))