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.
gnucap-custom/Makefile.in

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" > $@