Сел сейчас переделать утилитку, вычисляющую моменты восхода/захода Солнца (ну и заодно полудня). Она нужна для того, чтобы не писать вручную, во сколько времени автоматом закрыть телескоп при наблюдениях. Ну и решил, чтобы не плодить сущности, просто сделать симлинки 'sunrise' и 'sunset' на основную утилиту 'noon'.
Для этого основными целями делаем создание ссылок, а уже их ставим в зависимость от основной цели. Вот такой Makefile получился:
А внутри просто проверяем, что собой представляет basename(argv[0]), выбирая соответствующие действия.
Для этого основными целями делаем создание ссылок, а уже их ставим в зависимость от основной цели. Вот такой Makefile получился:
# run `make DEF=...` to add extra defines
PROGRAM = noon
LDFLAGS := -fdata-sections -ffunction-sections -Wl,--gc-sections -Wl,--discard-all
LDFLAGS += -lnova
SRCS := $(wildcard *.c)
DEFINES := $(DEF) -D_GNU_SOURCE -D_XOPEN_SOURCE=1111
CFLAGS += -O2 -Wno-trampolines -std=gnu99
CC = gcc
LINKS := sunrise sunset
all : $(LINKS)
$(LINKS) : $(PROGRAM)
@echo "make links"
ln -s $< $@ || true
$(PROGRAM): sun.c
@echo -e "\t\tCC $<"
$(CC) $(LDFLAGS) $(CFLAGS) $(DEFINES) -o $@ $<
А внутри просто проверяем, что собой представляет basename(argv[0]), выбирая соответствующие действия.