Home | History | Annotate | Line # | Download | only in c++tools
      1 # Makefile for c++tools
      2 #   Copyright (C) 2020-2022 Free Software Foundation, Inc.
      3 #
      4 # This file is free software; you can redistribute it and/or modify
      5 # it under the terms of the GNU General Public License as published by
      6 # the Free Software Foundation; either version 3 of the License, or
      7 # (at your option) any later version.
      8 # 
      9 # This program is distributed in the hope that it will be useful,
     10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
     11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     12 # GNU General Public License for more details.
     13 # 
     14 # You should have received a copy of the GNU General Public License
     15 # along with this program; see the file COPYING3.  If not see
     16 # <http://www.gnu.org/licenses/>.
     17 
     18 srcdir := @srcdir@
     19 prefix := @prefix@
     20 bindir := @bindir@
     21 libexecdir := @libexecdir@
     22 target_noncanonical := @target_noncanonical@
     23 gcc_version := $(shell @get_gcc_base_ver@ $(srcdir)/../gcc/BASE-VER)
     24 libexecsubdir := $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version)
     25 INSTALL_PROGRAM := @INSTALL_PROGRAM@
     26 INSTALL_STRIP_PROGRAM := $(srcdir)/../install-sh -c -s
     27 AUTOCONF := @AUTOCONF@
     28 AUTOHEADER := @AUTOHEADER@
     29 CXX := @CXX@
     30 CXXFLAGS := @CXXFLAGS@
     31 PIEFLAG := @PIEFLAG@
     32 CXXOPTS := $(CXXFLAGS) $(PIEFLAG) -fno-exceptions -fno-rtti
     33 LDFLAGS := @LDFLAGS@
     34 exeext := @EXEEXT@
     35 LIBIBERTY := ../libiberty/libiberty.a
     36 NETLIBS := @NETLIBS@
     37 VERSION.O := ../gcc/version.o
     38 
     39 all::
     40 
     41 mostlyclean::
     42 	rm -f $(MAPPER.O)
     43 
     44 clean::
     45 	rm -f g++-mapper-server$(exeext)
     46 
     47 distclean::
     48 	rm -f config.log config.status config.h
     49 
     50 maintainer-clean::
     51 
     52 install::
     53 
     54 check::
     55 installcheck::
     56 dvi::
     57 pdf::
     58 html::
     59 info::
     60 install-info::
     61 install-pdf::
     62 install-dvi::
     63 install-man::
     64 install-html::
     65 
     66 install-strip: override INSTALL_PROGRAM = $(INSTALL_STRIP_PROGRAM)
     67 ifneq ($(STRIP),)
     68 install-strip: STRIPPROG = $(STRIP)
     69 export STRIPPROG
     70 endif
     71 install-strip: install
     72 
     73 vpath %.cc $(srcdir)
     74 vpath %.in $(srcdir)
     75 .SUFFIXES:
     76 .SUFFIXES: .cc .o
     77 
     78 # Per-source & per-directory compile flags (warning: recursive)
     79 SRC_CXXFLAGS = $(CXXFLAGS$(patsubst $(srcdir)%,%,$1)) \
     80 	$(if $(filter-out $(srcdir)/,$1),\
     81 	  $(call $0,$(dir $(patsubst %/,%,$1))))
     82 
     83 %.o: %.cc
     84 	$(CXX) $(strip $(CXXOPTS) $(call SRC_CXXFLAGS,$<) $(CXXINC)) \
     85 	  -MMD -MP -MF ${@:.o=.d} -c -o $@ $<
     86 
     87 ifeq (@CXX_AUX_TOOLS@,yes)
     88 
     89 all::g++-mapper-server$(exeext)
     90 
     91 MAPPER.O := server.o resolver.o
     92 CODYLIB = ../libcody/libcody.a
     93 CXXINC += -I$(srcdir)/../libcody -I$(srcdir)/../include -I$(srcdir)/../gcc -I. -I../gcc
     94 g++-mapper-server$(exeext): $(MAPPER.O) $(CODYLIB)
     95 	+$(CXX) $(LDFLAGS) $(PIEFLAG) -o $@ $^ $(LIBIBERTY) $(NETLIBS)
     96 
     97 # copy to gcc dir so tests there can run
     98 all::../gcc/g++-mapper-server$(exeext)
     99 
    100 ../gcc/g++-mapper-server$(exeext): g++-mapper-server$(exeext)
    101 	$(INSTALL) $< $@
    102 
    103 install::
    104 	$(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(libexecsubdir)
    105 	$(INSTALL_PROGRAM) g++-mapper-server$(exeext) $(DESTDIR)$(libexecsubdir)
    106 endif
    107 
    108 ifneq ($(MAINTAINER),)
    109 override MAINTAINER += $1
    110 endif
    111 ifeq (@MAINTAINER@,yes)
    112 MAINTAINER = $2
    113 else
    114 MAINTAINER = \# --enable-maintainer-mode to rebuild $1, or make MAINTAINER=touch
    115 endif
    116 
    117 all:: Makefile
    118 
    119 Makefile: $(srcdir)/Makefile.in config.status
    120 	$(SHELL) ./config.status Makefile
    121 
    122 $(srcdir)/configure: $(srcdir)/configure.ac
    123 	$(call MAINTAINER,$@,cd $(@D) && $(AUTOCONF) -W all,error)
    124 
    125 $(srcdir)/config.h.in: $(srcdir)/configure.ac
    126 	$(call MAINTAINER,$@,cd $(@D) && $(AUTOHEADER) -f -W all,error)
    127 
    128 config.h: config.status config.h.in
    129 	./$< --header=$@
    130 	touch $@
    131 
    132 config.status: $(srcdir)/configure $(srcdir)/config.h.in
    133 	if test -x $@; then ./$@ -recheck; else $< @configure_args@; fi
    134 
    135 .PHONY: all check clean distclean maintainer-clean
    136 
    137 -include $(MAPPER.O:.o=.d)
    138