eddy_em: (Default)
[personal profile] eddy_em
Сел сейчас переделать утилитку, вычисляющую моменты восхода/захода Солнца (ну и заодно полудня). Она нужна для того, чтобы не писать вручную, во сколько времени автоматом закрыть телескоп при наблюдениях. Ну и решил, чтобы не плодить сущности, просто сделать симлинки 'sunrise' и 'sunset' на основную утилиту 'noon'.
Для этого основными целями делаем создание ссылок, а уже их ставим в зависимость от основной цели. Вот такой 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]), выбирая соответствующие действия.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org

April 2025

S M T W T F S
  1 23 45
67 89101112
13141516171819
20212223242526
27282930   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 23rd, 2025 02:31 am
Powered by Dreamwidth Studios