Synopsis - Cross-Reference
File: /src/Makefile.in1# 2# Copyright (C) 2003 Stefan Seefeld 3# All rights reserved. 4# Licensed to the public under the terms of the GNU LGPL (>= 2), 5# see the file COPYING for details. 6# 7 8SHELL := /bin/sh 9 10srcdir := @srcdir@ 11builddir:= @builddir@ 12 13PLATFORM:= @PLATFORM@ 14SYNOPSIS:= python synopsis.py 15CXX := @CXX@ 16LDSHARED:= @LDSHARED@ 17LDSONAME:= @LDSONAME@ 18MAKEDEP := $(CXX) -M 19AR := @AR@ 20RANLIB := @RANLIB@ 21LN_S := @LN_S@ 22CPPFLAGS:= @CPPFLAGS@ -D SYNOPSIS_SRC -I $(builddir) -I $(srcdir) 23CXXFLAGS:= @CXXFLAGS@ 24LDFLAGS := @LDFLAGS@ 25LIBS := @LIBS@ 26LIBEXT := @LIBEXT@ 27INSTALL := @INSTALL@ 28INSTALL_DATA := @INSTALL_DATA@ 29INSTALL_PROGRAM = @INSTALL_PROGRAM@ 30INSTALL_SCRIPT := @INSTALL_SCRIPT@ 31MAJOR := @MAJOR@ 32MINOR := @MINOR@ 33 34prefix := @prefix@ 35exec_prefix := @exec_prefix@ 36datarootdir := @datarootdir@ 37datadir := @datadir@ 38includedir := @includedir@ 39libdir := @libdir@ 40sbindir := @sbindir@ 41bindir := @bindir@ 42 43ifneq ($(findstring -fPIC, $(CXXFLAGS)),) 44GC_CFLAGS := CFLAGS="@CFLAGS@ -fPIC" 45endif 46GC_LIB := @GC_LIB@ 47ifdef GC_LIB 48CPPFLAGS+= -I $(srcdir)/Synopsis/gc/include 49endif 50 51define make_dep 52@echo generating dependencies for $(@D)/$(<F) 53$(SHELL) -ec '$(MAKEDEP) $(CPPFLAGS) $< | sed "s,$(*F)\\.o[ :]*,$*\\.d $*\\.o : ,g" > $@' 54endef 55 56define compile 57@echo compiling $(@D)/$(@F) 58$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< 59endef 60 61ifneq ($(findstring $(PLATFORM), nt cygwin),) 62define link_dso 63@echo linking $@ 64$(LDSHARED) $(LDFLAGS) -o $@ $^ $(LIBS) 65endef 66 67define install_dso 68@echo installing $@ 69$(INSTALL_PROGRAM) lib/libSynopsis$(LIBEXT) \ 70 $(DESTDIR)$(libdir)/libSynopsis$(LIBEXT) 71endef 72 73else 74 75define link_dso 76@echo linking $@ 77rm -f $@ $@.$(MAJOR) $@.$(MAJOR).$(MINOR) 78$(LDSHARED) $(LDFLAGS) $(LDSONAME)$(@F).$(MAJOR).$(MINOR) \ 79 -o $@.$(MAJOR).$(MINOR) $^ $(LIBS) 80(cd $(@D) && $(LN_S) $(@F).$(MAJOR).$(MINOR) $(@F).$(MAJOR)) 81(cd $(@D) && $(LN_S) $(@F).$(MAJOR) $(@F)) 82endef 83 84define install_dso 85@echo installing libSynopsis$(LIBEXT) 86rm -f $(DESTDIR)$(libdir)/libSynopsis$(LIBEXT) \ 87 $(DESTDIR)$(libdir)/libSynopsis$(LIBEXT).$(MAJOR) \ 88 $(DESTDIR)$(libdir)/libSynopsis$(LIBEXT).$(MAJOR).$(MINOR) 89$(INSTALL_PROGRAM) lib/libSynopsis$(LIBEXT).$(MAJOR).$(MINOR) \ 90 $(DESTDIR)$(libdir)/libSynopsis$(LIBEXT).$(MAJOR).$(MINOR) 91(cd $(DESTDIR)$(libdir) && $(LN_S) libSynopsis$(LIBEXT).$(MAJOR).$(MINOR) libSynopsis$(LIBEXT).$(MAJOR)) 92(cd $(DESTDIR)$(libdir) && $(LN_S) libSynopsis$(LIBEXT).$(MAJOR) libSynopsis$(LIBEXT)) 93endef 94endif 95 96define link_app 97@echo linking $@ 98$(CXX) -Llib $(LDFLAGS) -o $@ $< -lSynopsis $(LIBS) 99endef 100 101SRC := Trace \ 102 PTree/Node PTree/Encoding PTree/operations \ 103 PTree/Atoms PTree/Lists PTree/generation \ 104 PTree/Visitor PTree/Display PTree/Writer \ 105 SymbolLookup/Symbol SymbolLookup/Scope SymbolLookup/Scopes \ 106 SymbolLookup/Display SymbolLookup/Walker \ 107 TypeAnalysis/Type TypeAnalysis/Kit \ 108 TypeAnalysis/TypeEvaluator \ 109 TypeAnalysis/ConstEvaluator \ 110 TypeAnalysis/OverloadResolver \ 111 Buffer Lexer SymbolFactory Parser 112 113SRC := $(patsubst %, Synopsis/%.cc, $(SRC)) 114 115SUP := $(patsubst %, Support/%.cc, Path ErrorHandler) 116 117HDR := $(patsubst $(srcdir)/%, %, $(wildcard $(srcdir)/Synopsis/*.hh)) 118HDR += $(patsubst $(srcdir)/%, %, $(wildcard $(srcdir)/Synopsis/PTree/*.hh)) 119HDR += $(patsubst $(srcdir)/%, %, $(wildcard $(srcdir)/Synopsis/SymbolLookup/*.hh)) 120HDR += $(patsubst $(srcdir)/%, %, $(wildcard $(srcdir)/Synopsis/TypeAnalysis/*.hh)) 121 122OBJ := $(patsubst %.cc, %.o, $(SRC)) 123CC_SYN := $(patsubst %, %.sxr.syn, $(SRC)) 124HDR_SYN := $(patsubst %, %.syn, $(HDR)) 125HDR_SXR_SYN:= $(patsubst %, %.sxr.syn, $(HDR)) 126DEP := $(patsubst %.cc, %.d, $(SRC) tools/display-ptree.cc tools/display-symbols.cc) 127 128LIBRARY := lib/libSynopsis$(LIBEXT) 129SUPPORT := lib/libSupport.a 130TOOLS := bin/display-ptree bin/display-symbols 131TARGETS := $(LIBRARY) $(SUPPORT) $(TOOLS) 132 133vpath %.cc $(srcdir) 134vpath %.c $(srcdir) 135vpath %.h $(srcdir) 136vpath %.hh $(srcdir) $(builddir) 137 138all: $(TARGETS) 139 140$(LIBRARY): $(OBJ) $(GC_LIB) 141 $(link_dso) 142 143$(SUPPORT): $(patsubst %.cc, %.o, $(SUP)) 144 $(AR) cru $@ $^ 145 $(RANLIB) $@ 146 147$(TOOLS): bin/%: tools/%.o $(LIBRARY) 148 $(link_app) 149 150doc: cxx.syn cxx-sxr.syn 151 152cxx.syn: $(HDR_SYN) 153 @echo linking C++ headers together 154 $(SYNOPSIS) link --output=$@ $^ 155 156cxx-sxr.syn: $(HDR_SXR_SYN) $(CC_SYN) 157 @echo linking all C++ files together 158 $(SYNOPSIS) link --output=$@ $^ 159 160%.d: %.cc 161 $(make_dep) 162 163%.o: %.cc 164 $(compile) 165 166Makefile: $(srcdir)/Makefile.in 167 ./config.status --file Makefile 168 169$(HDR_SYN): %.syn: % 170 @echo parsing $^ 171 mkdir -p $(dir $@) 172 $(SYNOPSIS) cxx --output=$@ $? 173 174$(HDR_SXR_SYN): %.sxr.syn: % 175 @echo parsing $^ 176 mkdir -p $(dir $@) 177 $(SYNOPSIS) cxx_sxr --output=$@ $? 178 179$(CC_SYN): %.cc.sxr.syn: %.cc 180 @echo parsing $^ 181 mkdir -p $(dir $@) 182 $(SYNOPSIS) cxx_sxr --output=$@ $? 183 184# This calls make in the gc dir to create the gc.a file 185$(GC_LIB): 186 $(MAKE) -C Synopsis/gc $(GC_CFLAGS) 187 188install: 189 $(INSTALL) -d $(DESTDIR)$(libdir) 190 $(install_dso) 191 $(INSTALL) -d $(DESTDIR)$(includedir)/Synopsis 192 $(INSTALL) -d $(DESTDIR)$(includedir)/Synopsis/PTree 193 $(INSTALL) -d $(DESTDIR)$(includedir)/Synopsis/SymbolLookup 194 $(INSTALL) -d $(DESTDIR)$(includedir)/Synopsis/TypeAnalysis 195 for header in $(HDR); do \ 196 $(INSTALL_DATA) $(srcdir)/$$header \ 197 $(DESTDIR)$(includedir)/`dirname $$header`; \ 198 done 199 $(INSTALL) -d $(DESTDIR)$(libdir)/pkgconfig 200 $(INSTALL_DATA) synopsis.pc \ 201 $(DESTDIR)$(libdir)/pkgconfig/synopsis.pc 202 203clean: 204 rm -f Synopsis/*~ Synopsis/*.o Synopsis/*.d Synopsis/*.syn \ 205 Synopsis/PTree/*.~ Synopsis/PTree/*.o Synopsis/PTree/*.d Synopsis/PTree/*.syn \ 206 Synopsis/SymbolLookup/*.~ Synopsis/SymbolLookup/*.o Synopsis/SymbolLookup/*.d Synopsis/SymbolLookup/*.syn \ 207 Synopsis/TypeAnalysis/*.~ Synopsis/TypeAnalysis/*.o Synopsis/TypeAnalysis/*.d Synopsis/TypeAnalysis/*.syn \ 208 tools/*.~ tools/*.o tools/*.d \ 209 *.dll *.so *core \ 210 base_lib 211 212ifeq (,$(filter $(MAKECMDGOALS), depend clean distclean)) 213-include $(DEP) 214endif