27 lines
565 B
Makefile
27 lines
565 B
Makefile
# Przykład "owinięcia" (wrap) / sastąpienia
|
|
# pojedynczej funkcji przez linker
|
|
# Uwaga na zamierzone włączenie #include "foo.c"
|
|
# w test/foo.c
|
|
.PHONY := clean
|
|
|
|
CC := gcc
|
|
|
|
CFLAGS := -Wall -Wextra -pedantic
|
|
LDFLAGS :=
|
|
OBJS := main.o foo.o
|
|
|
|
WRAP_CFLAGS := $(CFLAGS)
|
|
WRAP_LDFLAGS := $(LD_FLAGS) -Wl,-wrap=foo
|
|
WRAP_OBJS := main.o
|
|
WRAP_SRCDIR := tests
|
|
|
|
all: main wrap
|
|
|
|
main: $(OBJS)
|
|
$(CC) $(LDFLAGS) -o $@ $^
|
|
|
|
wrap: $(WRAP_OBJS)
|
|
$(CC) $(WRAP_LDFLAGS) -o wrap $^ $(WRAP_SRCDIR)/foo.c -I$(WRAP_SRCDIR)
|
|
|
|
clean:
|
|
@rm -f main wrap $(OBJS) $(WRAP_OBJS) > /dev/null 2>&1
|