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