CFLAGS = -g -lobapi -L.
%.o : CFLAGS = -L.
scan_sync_demo.o : scan_sync_demo.c
gcc -c $(CFLAGS) {1}lt; -o $@
set_sync_demo.o : set_sync_demo.c
gcc -c $(CFLAGS) set_sync_demo.c
time_test.o : time_test.c
gcc -c $(CFLAGS) time_test.c
sum_async_demo.o : sum_async_demo.c
gcc -c $(CFLAGS) sum_async_demo.c
scan_sync_demo: scan_sync_demo.o
gcc $(CFLAGS) {1}lt; -o $@
set_sync_demo:set_sync_demo.o
gcc $(CFLAGS) $@ -o set_sync_demo
time_test:time_test.o
gcc $(CFLGGS) $@ -o time_test
sum_async_demo:sum_async_demo.o
gcc $(CFLAGS) $@ -o sum_async_demo
.PHONY : clean
clean:
rm scan_sync_demo scan_sync_demo.o \
set_sync_demo set_sync_demo.o \
time_test time_test.o \
sum_async_demo sum_async_demo.o
利用通配符的简化版本:
CFLAGS = -g -L.
LDFLAGS = -lobapi -L.
targets = scan_sync_demo set_sync_demo time_test sum_async_demo
objects = scan_sync_demo.o set_sync_demo.o time_test.o sum_async_demo.o
all: $(targets)
$(objects): %.o: %.c
$(CC) -c $(CFLAGS) {1}lt; -o $@
$(targets): $(objects)
$(CC) $(CFLAGS) $(LDFLAGS) {1}lt; -o $@
.PHONY : clean
clean:
rm scan_sync_demo scan_sync_demo.o \
set_sync_demo set_sync_demo.o \
time_test time_test.o \
sum_async_demo sum_async_demo.o
make即可。但是上面的不支持单个文件的make,改造方法如下:
CFLAGS = -g -L.
LDFLAGS = -lobapi -L.
targets = scan_sync_demo set_sync_demo time_test sum_async_demo
objects = scan_sync_demo.o set_sync_demo.o time_test.o sum_async_demo.o
all: $(targets)
%.o: %.c
$(CC) -c $(CFLAGS) {1}lt; -o $@
$(targets): %: %.o
$(CC) $(CFLAGS) $(LDFLAGS) {1}lt; -o $@
.PHONY : clean
clean:
rm scan_sync_demo scan_sync_demo.o \
set_sync_demo set_sync_demo.o \
time_test time_test.o \
sum_async_demo sum_async_demo.o