# -*- sh -*- #--------------------------------------------------------------------------- # ANSI C compiler #--------------------------------------------------------------------------- CC = @CC@ CFLAGS = @CFLAGS@ LDFLAGS = @LDFLAGS@ @DYNAMIC_LINK_FLAGS@ #----------------------------------------------------------------------------- # System library that contains functions for dynamic linking (-ldl) #----------------------------------------------------------------------------- DL_LIB= @DYNAMIC_LINK_LIB@ #--------------------------------------------------------------------------- # Compiler for producing a shared library (ELF) #--------------------------------------------------------------------------- ELF_CC = @ELF_CC@ ELF_CFLAGS = @ELF_CFLAGS@ ELF_LINK = @ELF_LINK@ ELF_DEP_LIBS = @ELF_DEP_LIBS@ #--------------------------------------------------------------------------- # Set these values to ABSOLUTE path names #--------------------------------------------------------------------------- SRCDIR = @SRCDIR@# Location of sources OBJDIR = @OBJDIR@# Location of objects ELFDIR = @ELFDIR@# Location of elf objects #--------------------------------------------------------------------------- # Set for termcap support #TCAPLIB = -ltermcap TCAPLIB = @TERMCAP@ MISC_TERMINFO_DIRS = @MISC_TERMINFO_DIRS@ #--------------------------------------------------------------------------- # Directory where library is going to go when installed #--------------------------------------------------------------------------- prefix = @prefix@ exec_prefix = @exec_prefix@ install_lib_dir = @libdir@ install_include_dir = @includedir@ install_doc_dir = $(prefix)/share/doc/slang DOC_FILES = ../changes.txt ../COPY* ../doc/slangdoc.html ../doc/text/*.txt MODULE_INSTALL_DIR = @libdir@/slang/modules #--------------------------------------------------------------------------- # DESTDIR is designed to facilitate making packages. Normally it is empty #--------------------------------------------------------------------------- DESTDIR = DEST_LIBDIR = $(DESTDIR)$(install_lib_dir) DEST_DOCDIR = $(DESTDIR)$(install_doc_dir) DEST_INCDIR = $(DESTDIR)$(install_include_dir) #--------------------------------------------------------------------------- # Misc commands (safe to leave these untouched) #--------------------------------------------------------------------------- RANLIB = @RANLIB@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ MKINSDIR = ../autoconf/mkinsdir.sh RM = rm -f RM_R = rm -rf AR_CR = ar cr RMDIR = rmdir LN = /bin/ln -sf CP = cp MKDIR = mkdir @SET_MAKE@ #--------------------------------------------------------------------------- # There should be no need to change anything below here. #--------------------------------------------------------------------------- THIS_LIB = slang# OTHERSTUFF = THIS_LIB_DEFINES = -DSLANG ELF_MAJOR_VERSION = @slang_major_version@# ELF_MINOR_VERSION = @slang_minor_version@# CONFIG_H = config.h ALL_CFLAGS = $(CFLAGS) -Dunix $(THIS_LIB_DEFINES) ALL_ELF_CFLAGS = $(ELF_CFLAGS) -Dunix $(THIS_LIB_DEFINES) COMPILE_CMD = $(CC) -c $(ALL_CFLAGS) ELFCOMPILE_CMD = $(ELF_CC) -c $(ALL_ELF_CFLAGS) ELF_LINK_CMD = @ELF_LINK_CMD@ NORMAL_LIB = lib$(THIS_LIB).a OBJDIR_NORMAL_LIB = $(OBJDIR)/$(NORMAL_LIB) # ELFLIB = lib$(THIS_LIB).so# # ELFLIB_MAJOR = $(ELFLIB).$(ELF_MAJOR_VERSION)# # ELFLIB_MAJOR_MINOR = $(ELFLIB).$(ELF_MAJOR_VERSION).$(ELF_MINOR_VERSION)# ELFLIB = @ELFLIB@ ELFLIB_MAJOR = @ELFLIB_MAJOR@ ELFLIB_MAJOR_MINOR = @ELFLIB_MAJOR_MINOR@ ELFDIR_ELF_LIB = $(ELFDIR)/$(ELFLIB_MAJOR_MINOR)# EXECLIBS = -L$(OBJDIR) -lslang -lm $(TCAPLIB) $(DL_LIB) EXECDEPS = $(OBJDIR_NORMAL_LIB) OFILES = @PROGRAM_OFILES@ OBJS = @PROGRAM_OBJECTS@ ELFOBJS = @PROGRAM_ELFOBJECTS@ SHELL = /bin/sh sltoken_O_DEP = keywhash.c slarith_O_DEP = slarith.inc slarrfun_O_DEP = slarrfun.inc slmisc_O_DEP = slang.h slstd_C_FLAGS = -DSLANG_DOC_DIR='"$(install_doc_dir)"' slimport_C_FLAGS = -DMODULE_INSTALL_DIR='"$(MODULE_INSTALL_DIR)"' sltermin_C_FLAGS = -DMISC_TERMINFO_DIRS='"$(MISC_TERMINFO_DIRS)"' #--------------------------------------------------------------------------- # Rules #--------------------------------------------------------------------------- all: $(OBJDIR) $(CONFIG_H) $(OBJDIR_NORMAL_LIB) $(OTHERSTUFF) elf: $(ELFDIR) $(CONFIG_H) $(ELFDIR_ELF_LIB) $(OBJDIR_NORMAL_LIB): $(OBJDIR) $(CONFIG_H) $(OBJS) -$(RM) $(OBJDIR_NORMAL_LIB) cd $(OBJDIR); $(AR_CR) $(NORMAL_LIB) $(OFILES) $(RANLIB) $(OBJDIR_NORMAL_LIB) @echo "" @echo $(NORMAL_LIB) created in $(OBJDIR) $(ELFDIR_ELF_LIB): $(ELFDIR) $(CONFIG_H) $(ELFOBJS) -$(RM) $(ELFDIR_ELF_LIB) cd $(ELFDIR); $(ELF_LINK_CMD) -o $(ELFLIB_MAJOR_MINOR) $(OFILES) $(ELF_DEP_LIBS) cd $(ELFDIR); $(RM) $(ELFLIB); $(LN) $(ELFLIB_MAJOR_MINOR) $(ELFLIB) @echo "" @echo $(ELFLIB_MAJOR_MINOR) created in $(ELFDIR). @echo The link $(ELFLIB) to $(ELFLIB_MAJOR_MINOR) was also created. @echo "" $(OBJDIR) : -$(MKDIR) $(OBJDIR) $(ELFDIR) : -$(MKDIR) $(ELFDIR) $(CONFIG_H) : sysconf.h -$(CP) sysconf.h $(CONFIG_H) #--------------------------------------------------------------------------- # Intallation rules #--------------------------------------------------------------------------- install: install_basic_lib install_basic_lib: $(DEST_LIBDIR) $(DEST_INCDIR) $(OBJDIR_NORMAL_LIB) @echo installing $(OBJDIR_NORMAL_LIB) in $(DEST_LIBDIR) $(INSTALL_DATA) $(OBJDIR_NORMAL_LIB) $(DEST_LIBDIR) $(RANLIB) $(DEST_LIBDIR)/$(NORMAL_LIB) @echo installing slang.h and slcurses.h in $(DEST_INCDIR) $(INSTALL_DATA) $(SRCDIR)/slang.h $(DEST_INCDIR) $(INSTALL_DATA) $(SRCDIR)/slcurses.h $(DEST_INCDIR) install_docs: $(DEST_DOCDIR) @for i in $(DOC_FILES); \ do \ echo $(INSTALL_DATA) $$i $(DEST_DOCDIR)/; \ $(INSTALL_DATA) $$i $(DEST_DOCDIR); \ done $(DEST_DOCDIR): $(MKINSDIR) $(DEST_DOCDIR) $(DEST_INCDIR): $(MKINSDIR) $(DEST_INCDIR) $(DEST_LIBDIR): $(MKINSDIR) $(DEST_LIBDIR) install-elf: elf install -$(RM) $(DEST_LIBDIR)/$(ELFLIB) @echo installing $(ELFLIB_MAJOR) in $(DEST_LIBDIR) $(INSTALL_DATA) $(ELFDIR_ELF_LIB) $(DEST_LIBDIR) @echo creating symbolic links to $(ELFLIB_MAJOR) -cd $(DEST_LIBDIR); $(LN) $(ELFLIB_MAJOR) $(ELFLIB) @echo "" @echo $(ELFLIB_MAJOR) created in $(DEST_LIBDIR). @echo The links $(ELFLIB) to $(ELFLIB_MAJOR) were also created. @echo "" install-links: -$(RM) $(DEST_LIBDIR)/$(ELFLIB) cd $(DEST_LIBDIR); $(LN) $(ELFLIB_MAJOR) $(ELFLIB) @echo @echo A link $(ELFLIB_MAJOR) to $(ELFLIB_MAJOR_MINOR) was created. @echo "" #--------------------------------------------------------------------------- # Tests #--------------------------------------------------------------------------- runtests: cd test; $(MAKE) CC="$(CC)" CFLAGS="$(CFLAGS)" TCAPLIB="$(TCAPLIB)" #--------------------------------------------------------------------------- # Housekeeping #--------------------------------------------------------------------------- elf-clean: -$(RM) $(ELFDIR)/* clean: elf-clean -$(RM) *~ "#"* -$(RM) $(OBJDIR)/* -$(RM) $(ELFDIR)/* distclean: clean -$(RM_R) $(OBJDIR) $(ELFDIR) Makefile sysconf.h $(CONFIG_H) # The symlinks target is for my own private use. It simply creates the object # directory as a symbolic link to a local disk instead of an NFS mounted one. symlinks: -/bin/rm -f $(ARCH)objs mkdir -p $(HOME)/sys/$(ARCH)/objs/slang/src ln -s $(HOME)/sys/$(ARCH)/objs/slang/src $(ARCH)objs @echo "Also try: make elfsymlinks" elfsymlinks: symlinks -/bin/rm -f elf$(ARCH)objs mkdir -p $(HOME)/sys/$(ARCH)/objs/slang/src/elf ln -s $(HOME)/sys/$(ARCH)/objs/slang/src/elf elf$(ARCH)objs #--------------------------------------------------------------------------- # Object Rules : These are created from the configure script (hopefully) #---------------------------------------------------------------------------