LINUX.ORG.RU

GNU make — разные варианты сборки

 


2

1

Например, у меня есть несколько вариантов сборки, которые отличаются LD-флагами, архитектурой и объектными файлами:

#common x68-64 with plplots
ARCH = x86-64
LDFLAGS = -I/usr/include/plplot -lplplotcxxd
OBJ = $(XOBJ) plots.o
USER_DEFINES = -DWITH_PLPLOT
и
#static x86-64 w/o plplots
ARCH = x86-64
LDFLAGS = -static -static-libgcc -static-libstdc++
OBJ = $(XOBJ)
USER_DEFINES =
Как написать цели сборки и зависимости, что бы по «make common» собрать первый вариант, а по «make static» второй?

★★★★★

Последнее исправление: thunar (всего исправлений: 1)

Как-то так, например:

#common x68-64 with plplots
common: ARCH := x86-64
common: LDFLAGS := -I/usr/include/plplot -lplplotcxxd
common: USER_DEFINES := -DWITH_PLPLOT
common: $(XOBJ) plots.o

#static x86-64 w/o plplots
static: ARCH := x86-64
static: LDFLAGS := -static -static-libgcc -static-libstdc++
static: USER_DEFINES :=
static: $(XOBJ)
xaizek ★★★★★
()

или так:


ifneq ($(filter common,$(MAKECMDGOALS)),)

#common x68-64 with plplots
ARCH = x86-64
LDFLAGS = -I/usr/include/plplot -lplplotcxxd
OBJ = $(XOBJ) plots.o
USER_DEFINES = -DWITH_PLPLOT

else ifneq ($(filter static,$(MAKECMDGOALS)),)

#static x86-64 w/o plplots
ARCH = x86-64
LDFLAGS = -static -static-libgcc -static-libstdc++
OBJ = $(XOBJ)
USER_DEFINES =

endif

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.