1## Common stuff used in Makefiles of extensions -*-mode: Makefile-*- 2## 3 4SHELL = @SHELL@ 5prefix = @prefix@ 6exec_prefix = @exec_prefix@ 7bindir = @bindir@ 8libdir = @libdir@ 9datadir = @datadir@ 10datarootdir = @datarootdir@ 11VPATH = $(srcdir) 12GAUCHE_VERSION = @GAUCHE_VERSION@ 13GAUCHE_ABI_VERSION = @GAUCHE_ABI_VERSION@ 14BUILD = @build@ 15HOST = @host@ 16 17# These may be overridden by make invocators 18DESTDIR = 19CC = @CC@ 20AR = @AR@ 21LOCAL_LFLAGS = @LOCAL_LIB@ 22LIBS = $(XLIBS) @LIBS@ 23CFLAGS = @CFLAGS@ @SHLIB_SO_CFLAGS@ $(XCFLAGS) 24CPPFLAGS = @CPPFLAGS@ $(XCPPFLAGS) 25LDFLAGS = $(LOCAL_LFLAGS) $(XLDFLAGS) @SHLIB_SO_LDFLAGS@ 26BUILD_GOSH_FLAGS = 27 28# These are set by configure 29DEFS = @DEFS@ 30OPTFLAGS = @OPTFLAGS@ 31INCLUDES = -I. -I$(srcdir) -I$(top_srcdir)/src -I$(top_builddir)/src -I$(top_srcdir)/gc/include @LOCAL_INC@ $(EXTRA_INCLUDES) 32OBJEXT = @OBJEXT@ 33EXEEXT = @EXEEXT@ 34SOEXT = @SHLIB_SO_SUFFIX@ 35BUILD_GOSH = "@BUILD_GOSH@" `cat $(top_builddir)/src/features.flags` 36 37# Main definition of compilation commands 38COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(OPTFLAGS) 39CCLD = $(CC) 40LINK = $(CCLD) $(CFLAGS) $(LDFLAGS) 41MODLINK = $(CCLD) $(CFLAGS) $(LDFLAGS) 42 43@CROSS_COMPILING_no@GOSH = "$(top_builddir)/src/gosh" -ftest 44@CROSS_COMPILING_yes@GOSH = $(BUILD_GOSH) $(BUILD_GOSH_FLAGS) 45GAUCHE_INSTALL = $(GOSH) "$(top_srcdir)/src/gauche-install.in" -C 46PRECOMP = $(GOSH) "$(top_srcdir)/src/precomp" 47INSTALL_TYPE = sys 48 49EXT_LIBGAUCHE = -L"$(top_builddir)/src" @EXT_LIBGAUCHE@ 50 51GAUCHE_INCDIR = $(DESTDIR)$(libdir)/gauche-$(GAUCHE_ABI_VERSION)/$(GAUCHE_VERSION)/include 52GAUCHE_LIBDIR = $(DESTDIR)$(datadir)/gauche-$(GAUCHE_ABI_VERSION)/$(GAUCHE_VERSION)/lib 53GAUCHE_ARCHDIR = $(DESTDIR)$(libdir)/gauche-$(GAUCHE_ABI_VERSION)/$(GAUCHE_VERSION)/$(HOST) 54 55LIB_INSTALL_DIR = @libdir@ 56BIN_INSTALL_DIR = @bindir@ 57DATA_INSTALL_DIR = @datadir@ 58 59CLEANFILES = core *~ test.log test.out $(XCLEANFILES) 60 61TESTRECORD = "$(top_builddir)/test.record" 62 63.SUFFIXES: 64.SUFFIXES: .S .c .o .obj .s .stub 65 66.PHONY: default all check install install-check clean distclean \ 67 maintainer-clean install-std uninstall link unlink list-objects \ 68 pre-package 69 70.c.obj: 71 $(COMPILE) -o `cygpath -w $@` -c `cygpath -w $<` 72 73.c.o: 74 $(COMPILE) -o $@ -c $< 75 76.s.o: 77 $(COMPILE) -c $< 78 79.S.o: 80 $(COMPILE) -c $< 81 82.stub.c : 83 $(GOSH) "$(top_srcdir)/src/genstub" $< 84 85default : all link 86 87check : all 88 @rm -f test.log 89 GAUCHE_TEST_RECORD_FILE=$(TESTRECORD) $(GOSH) -I"$(srcdir)" -I. "$(srcdir)/test.scm" > test.log 90 91install-check : 92 GAUCHE_TEST_RECORD_FILE=$(TESTRECORD) "${bindir}/gosh" "$(srcdir)/test.scm" 93 94clean : unlink 95 rm -rf $(CLEANFILES) *.$(OBJEXT) *.$(SOEXT) 96 97distclean : clean 98 rm -rf $(GENERATED) 99 100maintainer-clean : clean 101 rm -rf $(GENERATED) 102 103pre-package : $(PRE_PACKAGE_FILES) 104 105install-std : all 106 $(GAUCHE_INSTALL) -m 444 -S "$(srcdir)" -T "$(GAUCHE_INCDIR)" $(HDRFILES) 107 $(GAUCHE_INSTALL) -m 444 -S "$(srcdir)" -T "$(GAUCHE_LIBDIR)/$(SCM_CATEGORY)" $(SCMFILES) 108 $(GAUCHE_INSTALL) -m 555 -T "$(GAUCHE_ARCHDIR)" $(LIBFILES) 109 110uninstall : 111 112link : all 113 -$(GOSH) "$(top_srcdir)/ext/xlink" -l -g "$(SCM_CATEGORY)" \ 114 -b "$(top_builddir)" -s $(srcdir) $(LIBFILES) $(SCMFILES) 115 116unlink : 117 -@$(GOSH) "$(top_srcdir)/ext/xlink" -u -g "$(SCM_CATEGORY)" \ 118 -b "$(top_builddir)" -s $(srcdir) $(LIBFILES) $(SCMFILES) 119 120list-objects: 121 @if test "X$(OBJECTS)" != X; then \ 122 for o in $(OBJECTS); do echo "/// `pwd`/$$o"; done;\ 123 fi 124