You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
133 lines
4.0 KiB
Makefile
133 lines
4.0 KiB
Makefile
# -*- Makefile -*-
|
|
# Copyright (C) 2018 Felix Salfelder
|
|
# Author: Felix Salfelder <felix@salfelder.org>
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 3, or (at your option)
|
|
# any later version.
|
|
#
|
|
# This program 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 General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software
|
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
|
# 02110-1301, USA.
|
|
|
|
GNUCAP_CONF = $(shell which gnucap-conf$(SUFFIX))
|
|
PACKAGE_NAME = gnucap-custom
|
|
GNUCAP_MAKE = gnucap.mk${SUFFIX}
|
|
|
|
include Make.override
|
|
|
|
ifneq ($(GNUCAP_CONF),)
|
|
GNUCAP_CPPFLAGS = $(shell $(GNUCAP_CONF) --cppflags) -DADD_VERSION -DPIC
|
|
GNUCAP_CXXFLAGS = $(shell $(GNUCAP_CONF) --cxxflags) -Wall
|
|
GNUCAP_PKGLIBDIR = @pkglibdir@
|
|
GNUCAP_PLUGPATH = @plugpath@
|
|
GNUCAP_LDFLAGS = $(shell $(GNUCAP_CONF) --ldflags)
|
|
GNUCAP_LIBS = $(shell $(GNUCAP_CONF) --libs)
|
|
# GNUCAP_PKGLIBS = $(shell $(GNUCAP_CONF) --pkglibs)
|
|
# TODO complete gnucap-conf
|
|
GNUCAP_PREFIX = $(shell $(GNUCAP_CONF) --exec-prefix)# BUG, should be prefix!
|
|
GNUCAP_EXEC_PREFIX = @prefix@
|
|
# GNUCAP_DOCDIR = @docdir@ not yet
|
|
GNUCAP_DOCDIR = @prefix@/share/doc/gnucap
|
|
GNUCAP_SYSCONFDIR = @sysconfdir@
|
|
CXX = @cxx@
|
|
else
|
|
$(info no gnucap-conf, this will not work.)
|
|
$(info please install gnucap...)
|
|
endif
|
|
|
|
MAKE_CPPFLAGS+= -DDEFAULT_SYSTEMSTARTPATH=\"${GNUCAP_SYSCONFDIR}\"
|
|
MAKE_CPPFLAGS+= -DUSERSTARTFILE=\"gnucap_rc\"
|
|
MAKE_CPPFLAGS+= -DUSERSTARTPATH=\".\"
|
|
MAKE_CPPFLAGS+= -DDEFAULT_PLUGINS=\"gnucap-default-plugins.so\"
|
|
MAKE_CPPFLAGS+= -DDEFAULT_LANGUAGE=\"acs\"
|
|
MAKE_CPPFLAGS+= -DHAVE_LIBREADLINE
|
|
|
|
MODULES = \
|
|
c_cmk.so \
|
|
c_include.so \
|
|
c_make_attach.so \
|
|
c_message.so \
|
|
c_uninst.so \
|
|
c_vpp.so \
|
|
c_history.so \
|
|
d_subckt_p.so \
|
|
tab_completion.so
|
|
|
|
EXECUTABLES = gnucap-custom
|
|
CLEANFILES = ${MODULES} ${EXECUTABLES}
|
|
|
|
all: ${EXECUTABLES} ${MODULES} gncp
|
|
|
|
c_make_attach.so: MAKE_CPPFLAGS += "-DGNUCAP_MAKE=\"${GNUCAP_MAKE}\""
|
|
c_make_attach.so: MAKE_CPPFLAGS += "-DGNUCAP_CPPFLAGS=\"${GNUCAP_CPPFLAGS}\""
|
|
|
|
gncp:
|
|
ln -sf gnucap-custom $@
|
|
|
|
Makefile: Makefile.in
|
|
./configure @STATUS@
|
|
|
|
config.h: config.h.in
|
|
./configure @STATUS@
|
|
|
|
LIBS = ${GNUCAP_LIBS}
|
|
|
|
%.o: %.cc
|
|
$(CXX) $(CXXFLAGS) $(GNUCAP_CXXFLAGS) $(CPPFLAGS) $(MAKE_CPPFLAGS) $(GNUCAP_CPPFLAGS) -fPIC -shared -c -o $@ $<
|
|
|
|
main.o: main.cc config.h
|
|
$(CXX) $(CXXFLAGS) $(GNUCAP_CXXFLAGS) $(CPPFLAGS) $(MAKE_CPPFLAGS) -DHAVE_CONFIG $(GNUCAP_CPPFLAGS) -c -o $@ $<
|
|
|
|
# hack: pull in modified lang_verilog
|
|
c_vpp.so: c_vpp.o lang_verilog.o
|
|
$(CXX) $(LDFLAGS) -shared -o $@ $+ ${GNUCAP_PKGLIBS}
|
|
|
|
%.so: %.o
|
|
$(CXX) $(LDFLAGS) -shared -o $@ $< ${GNUCAP_PKGLIBS}
|
|
|
|
gnucap-custom: main.o config.h
|
|
$(CXX) $(CXXFLAGS) $(GNUCAP_CXXFLAGS) $(CPPFLAGS) $(GNUCAP_CPPFLAGS) -o $@ $< $(LDFLAGS) $(GNUCAP_LDFLAGS) $(LIBS)
|
|
|
|
EXAMPLES =
|
|
|
|
install: $(EXECUTABLES) $(MODULES) $(EXAMPLES) README
|
|
-install -d $(DESTDIR)$(GNUCAP_PKGLIBDIR)/custom
|
|
install $(MODULES) $(DESTDIR)$(GNUCAP_PKGLIBDIR)/custom
|
|
|
|
-install -d $(DESTDIR)$(GNUCAP_EXEC_PREFIX)/bin
|
|
install $(EXECUTABLES) $(DESTDIR)$(GNUCAP_EXEC_PREFIX)/bin
|
|
cd $(DESTDIR)$(GNUCAP_EXEC_PREFIX)/bin; ln -sf gnucap-custom gncp
|
|
|
|
-install -d $(DESTDIR)$(GNUCAP_DOCDIR)/$(PACKAGE_NAME)
|
|
install README $(DESTDIR)$(GNUCAP_DOCDIR)/$(PACKAGE_NAME)
|
|
|
|
-install -d $(DESTDIR)$(GNUCAP_SYSCONFDIR)
|
|
install gncp.rc $(DESTDIR)$(GNUCAP_SYSCONFDIR)
|
|
|
|
#-install -d $(DESTDIR)$(GNUCAP_DOCDIR)/$(PACKAGE_NAME)/examples
|
|
#install $(EXAMPLES) $(DESTDIR)$(GNUCAP_DOCDIR)/$(PACKAGE_NAME)/examples
|
|
|
|
uninstall :
|
|
(cd $(DESTDIR)$(GNUCAP_PKGLIBDIR) ; rm $(MODULES))
|
|
|
|
clean :
|
|
rm -f $(CLEANFILES)
|
|
rm -f *.o *~
|
|
|
|
check: all
|
|
HOME=$$(mktemp -d) $(MAKE) $@ -C tests
|
|
|
|
distclean: clean
|
|
rm Make.override
|
|
|
|
Make.override:
|
|
[ -e $@ ] || echo "# here you may override settings" > $@
|