# Build recipes # Copyright (C) 2024 Nguyễn Gia Phong # # This file is part of GoatC. # # GoatC is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published # by the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # GoatC is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with GoatC. If not, see . CXXFLAGS += -Wextra -Werror LDLIBS += $(shell llvm-config --cxxflags --ldflags) LDFLAGS ?= -fPIC -Wl,-undefined,dynamic_lookup PREFIX ?= /usr/local LIB := goatc.so BIN := goatcflags INSTALLED_LIB := $(addprefix $(DESTDIR)$(PREFIX)/lib/,$(LIB)) INSTALLED_BIN := $(addprefix $(DESTDIR)$(PREFIX)/bin/,$(BIN)) .PHONY: all clean install .SUFFIXES: all: $(LIB) goatc.so: goatc.cc ${CXX} ${CXXFLAGS} $< ${LDLIBS} -o $@ -shared ${LDFLAGS} goatcflags: goatcflags.m4 m4 -D PREFIX=${PREFIX} $< > $@ install: $(INSTALLED_LIB) $(INSTALLED_BIN) ${DESTDIR}${PREFIX}/lib/%: % install -Dm 644 $< $@ ${DESTDIR}${PREFIX}/bin/%: % install -Dm 755 $< $@