From 0ac8c3aa841212a193bcf027025521f7adf71255 Mon Sep 17 00:00:00 2001 From: Nguyễn Gia Phong Date: Mon, 26 Aug 2024 16:37:27 +0900 Subject: Draft base clang plugin --- Makefile | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 Makefile (limited to 'Makefile') diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..37f2fb0 --- /dev/null +++ b/Makefile @@ -0,0 +1,44 @@ +# 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} + +install: $(INSTALLED_LIB) $(INSTALLED_BIN) + +${DESTDIR}${PREFIX}/lib/%: % + install -Dm 644 $< $@ + +${DESTDIR}${PREFIX}/bin/%: % + install -Dm 755 $< $@ -- cgit 1.4.1