src/include/mk/hhl.cprog.mk

72 lines
1.6 KiB
Makefile

# hhl.cprog.mk - hhl - /usr/include/mk
# Copyright 2020 Nathan Fisher <nfisher.sr@gmail.com>
#
internal = true
src ?= ./src
objdir ?= $(global_objdir)/$(progname)
srcs ?= $(wildcard $(src)/*.c)
objs ?= $(patsubst $(src)/%.c,$(objdir)/%.o,$(srcs))
hdrs ?= $(wildcard $(src)/*.h)
o_lvl ?= -O2
include world.mk
include hhl.doc.mk
include hhl.locale.mk
include hhl.colors.mk
CC = $(tgt)-gcc
AR = $(tgt)-ar
RANLIB = $(tgt)-ranlib
BLD_CC ?= cc
ifeq ($(sbin),1)
bindir = $(sbindir)
binprog = $(sbindir)/$(progname)
else
binprog = $(bindir)/$(progname)
endif
ldflags += -I$(src)
cflags += $(o_lvl)
cflags += --sysroot=$(DESTDIR)
ifeq ($(hhl_source),1)
cflags += -std=c99
cflags += -Wall
cflags += -pedantic
endif
VPATH += $(src)
install: $(binprog) $(docs) $(locales) | $(binlinks) $(manlinks)
$(info $(grn)=== Finished building $(progname) ===$(reset))
ifeq (${onestage},true)
${binprog}: ${srcs} ${hdrs} | ${bindir}
$(info $(grn)=== Building for ${progname} ===$(reset))
${pre_build}
$(CC) ${cppflags} ${cflags} ${ldflags} -o $@ ${srcs} ${libs}
${post_build}
else
${objdir}:
$(info $(grn)=== Building for $(progname) ===$(reset))
${pre_build}
install -d ${objdir}
${binprog}: ${objs} | ${bindir}
$(CC) ${cflags} -o $@ ${objs} ${libs}
${post_build}
${objdir}/%.o: ${src}/%.c ${hdrs} | ${objdir}
$(CC) ${cppflags} ${cflags} ${ldflags} -o $@ -c $<
endif
$(binlinks): $(binprog)
ln -sf $(progname) $@
$(bindir):
install -d $@
clean:
rm -rf ${objs}
.PHONY: install clean