1#-*-sh-*- 2CC = @CC@ 3CFLAGS = @CFLAGS@ @SLANG_DLL_CFLAGS@ 4LDFLAGS = @LDFLAGS@ 5DLINK_FLAGS = @DYNAMIC_LINK_FLAGS@ 6CONFIG_DIR = @CONFIG_DIR@ 7OBJDIR = $(ARCH)objs 8SOBJDIR = static_objs 9SRCDIR = $(CONFIG_DIR)/slsh 10#--------------------------------------------------------------------------- 11# Installation location of the slang library 12#--------------------------------------------------------------------------- 13prefix = @prefix@ 14exec_prefix = @exec_prefix@ 15datarootdir = @datarootdir@ 16INST_LIB_DIR = @libdir@ 17SLANG_INST_INC = -I@includedir@ 18SLANG_INST_LIB = -L$(INST_LIB_DIR) 19#--------------------------------------------------------------------------- 20SLANG_SRCINC = -I@SRCDIR@ 21SLANG_ELFLIB = -L@ELFDIR@# for dynamically linked 22SLANG_OBJLIB = -L@OBJDIR@# for statically linked 23#--------------------------------------------------------------------------- 24DYNAMIC_LIBS = @TERMCAP@ @DYNAMIC_LINK_LIB@ @LIBS@ @M_LIB@ 25STATIC_LIBS = @TERMCAP@ @LIBS@ @M_LIB@ 26RPATH = @RPATH@ 27#---------------------------------------------------------------------------- 28INSTALL = @INSTALL@ 29INSTALL_DATA = @INSTALL_DATA@ 30MKINSDIR = $(CONFIG_DIR)/autoconf/mkinsdir.sh 31#---------------------------------------------------------------------------- 32# Where system-wide slsh.rc, scripts, and library files reside 33#---------------------------------------------------------------------------- 34SLSH_CONF_DIR = @sysconfdir@ 35SLSH_LIB_DIR = $(datarootdir)/slsh 36SLSH_HELP_DIR = $(SLSH_LIB_DIR)/help 37SLSH_DOC_DIR = $(datarootdir)/doc/slang/v@slang_major_version@ 38SLSH_LOCALLIB_DIR = $(SLSH_LIB_DIR)/local-packages 39SLSH_SCRIPT_DIR = $(SLSH_LIB_DIR)/scripts 40SCRIPTS = jpegsize lsrpm sldb svnsh slprof slstkchk 41#--------------------------------------------------------------------------- 42# Hard-coded paths may be configured during run-time via the SLSH_CONF_DIR 43# and SLSH_PATH env variables. The names of those variables may be 44# changed here. The SLSH_LIB_DIR variable has been deprecated. 45# 46SLSH_CONF_DIR_ENV = "SLSH_CONF_DIR" 47SLSH_PATH_ENV = "SLSH_PATH" 48SLSH_LIB_DIR_ENV = "SLSH_LIB_DIR" 49#--------------------------------------------------------------------------- 50# If you want GNU readline instead of slang's readline, then enable it here 51#--------------------------------------------------------------------------- 52GNU_READLINE = @GNU_READLINE@ 53READLINE_LIB = @LIB_READLINE@ 54#--------------------------------------------------------------------------- 55# DESTDIR is designed to facilitate making packages. Normally it is empty 56#--------------------------------------------------------------------------- 57#DESTDIR = 58BIN_DIR = @bindir@ 59MAN_DIR = @mandir@/man1 60DEST_LIB_DIR = -L$(DESTDIR)@libdir@ 61DEST_BIN_DIR = $(DESTDIR)$(BIN_DIR) 62DEST_MAN_DIR = $(DESTDIR)$(MAN_DIR) 63DEST_SLSH_CONF_DIR = $(DESTDIR)$(SLSH_CONF_DIR) 64DEST_SLSH_LIB_DIR = $(DESTDIR)$(SLSH_LIB_DIR) 65DEST_SLSH_HELP_DIR = $(DESTDIR)$(SLSH_HELP_DIR) 66DEST_SLSH_LOCALLIB_DIR = $(DESTDIR)$(SLSH_LOCALLIB_DIR) 67DEST_SLSH_SCRIPT_DIR = $(DESTDIR)$(SLSH_SCRIPT_DIR) 68DEST_SLSH_DOC_DIR= $(DESTDIR)$(SLSH_DOC_DIR) 69 70#---------------------------------------------------------------------------- 71# These should be empty for production code 72#---------------------------------------------------------------------------- 73SLSYSWRAP_DEF = @DSLSYSWRAP@ 74SLSYSWRAP_LIB = @LIB_SLSYSWRAP@ 75#---------------------------------------------------------------------------- 76# End of user configuration 77#---------------------------------------------------------------------------- 78@SET_MAKE@ 79SHELL = /bin/sh 80INST_LIBS = $(DEST_LIB_DIR) $(RPATH) $(SLANG_INST_LIB) -lslang $(READLINE_LIB) $(DYNAMIC_LIBS) 81DEFS = -DSLSH_CONF_DIR='"$(SLSH_CONF_DIR)"' -DSLSH_PATH='"$(SLSH_LIB_DIR)"' \ 82 -DSLSH_CONF_DIR_ENV='$(SLSH_CONF_DIR_ENV)' -DSLSH_LIB_DIR_ENV='$(SLSH_LIB_DIR_ENV)' \ 83 -DSLSH_PATH_ENV='$(SLSH_PATH_ENV)' $(SLSYSWRAP_DEF) 84SDEFS = $(DEFS) -DSLSH_STATIC 85SRC_LIBS = $(SLANG_ELFLIB) -lslang $(SLSYSWRAP_LIB) $(READLINE_LIB) $(DYNAMIC_LIBS) 86STATIC_SRC_LIBS = $(SLANG_OBJLIB) -lslang $(SLSYSWRAP_LIB) $(READLINE_LIB) $(STATIC_LIBS) 87OBJDIR_TSTAMP = $(OBJDIR)/tstamp 88SOBJDIR_TSTAMP = $(SOBJDIR)/tstamp 89# 90all: $(OBJDIR)/slsh_exe 91slsh: $(OBJDIR)/slsh 92$(OBJDIR)/slsh_exe: $(OBJDIR)/slsh.o $(OBJDIR)/readline.o 93 $(CC) $(CFLAGS) $(OBJDIR)/slsh.o $(OBJDIR)/readline.o -o $(OBJDIR)/slsh_exe $(LDFLAGS) $(DLINK_FLAGS) $(SRC_LIBS) 94$(OBJDIR)/slsh: $(OBJDIR)/slsh.o $(OBJDIR)/readline.o 95 $(CC) $(CFLAGS) $(OBJDIR)/slsh.o $(OBJDIR)/readline.o -o $(OBJDIR)/slsh $(LDFLAGS) $(DLINK_FLAGS) $(INST_LIBS) 96$(OBJDIR)/slsh.o: $(OBJDIR_TSTAMP) slsh.c slsh.h config.h Makefile 97 cd $(OBJDIR) && $(CC) $(SLANG_SRCINC) $(CFLAGS) -c $(DEFS) $(SRCDIR)/slsh.c 98$(OBJDIR)/readline.o: $(OBJDIR_TSTAMP) readline.c slsh.h config.h Makefile 99 cd $(OBJDIR) && $(CC) $(SLANG_SRCINC) $(CFLAGS) -c $(DEFS) -DUSE_GNU_READLINE=$(GNU_READLINE) $(SRCDIR)/readline.c 100$(OBJDIR_TSTAMP): 101 -$(MKINSDIR) $(OBJDIR) 102 touch $(OBJDIR_TSTAMP) 103# 104static: $(SOBJDIR)/slsh 105$(SOBJDIR)/slsh: $(SOBJDIR)/slsh.o $(SOBJDIR)/readline.o 106 $(CC) $(CFLAGS) $(SOBJDIR)/slsh.o $(SOBJDIR)/readline.o -o $(SOBJDIR)/slsh $(LDFLAGS) $(STATIC_SRC_LIBS) 107$(SOBJDIR)/slsh.o: $(SOBJDIR_TSTAMP) slsh.c slsh.h config.h Makefile 108 cd $(SOBJDIR) && $(CC) $(SLANG_SRCINC) $(CFLAGS) -c $(SDEFS) $(SRCDIR)/slsh.c 109$(SOBJDIR)/readline.o: $(SOBJDIR_TSTAMP) readline.c slsh.h config.h Makefile 110 cd $(SOBJDIR) && $(CC) $(SLANG_SRCINC) $(CFLAGS) -c $(SDEFS) -DUSE_GNU_READLINE=$(GNU_READLINE) $(SRCDIR)/readline.c 111$(SOBJDIR_TSTAMP): 112 -$(MKINSDIR) $(SOBJDIR) 113 touch $(SOBJDIR_TSTAMP) 114# 115config.h: ../src/config.h 116 cp ../src/config.h . 117install_directories: 118 $(MKINSDIR) $(DEST_BIN_DIR) 119 $(MKINSDIR) $(DEST_MAN_DIR) 120 $(MKINSDIR) $(DEST_SLSH_CONF_DIR) 121 $(MKINSDIR) $(DEST_SLSH_LIB_DIR) 122 $(MKINSDIR) $(DEST_SLSH_LIB_DIR)/rline 123 $(MKINSDIR) $(DEST_SLSH_HELP_DIR) 124 $(MKINSDIR) $(DEST_SLSH_LOCALLIB_DIR) 125 $(MKINSDIR) $(DEST_SLSH_SCRIPT_DIR) 126 $(MKINSDIR) $(DEST_SLSH_DOC_DIR)/html 127install_lib_files: 128 @for X in lib/*.sl; \ 129 do \ 130 echo $(INSTALL_DATA) $$X $(DEST_SLSH_LIB_DIR); \ 131 $(INSTALL_DATA) $$X $(DEST_SLSH_LIB_DIR); \ 132 if [ "$$?" != "0" ]; then \ 133 exit 1; \ 134 fi; \ 135 done 136install_rline_files: 137 @for X in lib/rline/*.sl lib/rline/slrline.rc; \ 138 do \ 139 echo $(INSTALL_DATA) $$X $(DEST_SLSH_LIB_DIR)/rline/; \ 140 $(INSTALL_DATA) $$X $(DEST_SLSH_LIB_DIR)/rline/; \ 141 if [ "$$?" != "0" ]; then \ 142 exit 1; \ 143 fi; \ 144 done 145install_scripts: 146 @for X in $(SCRIPTS); \ 147 do \ 148 echo $(INSTALL) scripts/$$X $(DEST_SLSH_SCRIPT_DIR); \ 149 $(INSTALL) scripts/$$X $(DEST_SLSH_SCRIPT_DIR); \ 150 if [ "$$?" != "0" ]; then \ 151 exit 1; \ 152 fi; \ 153 done 154install_help: 155 @for X in lib/help/*.hlp; \ 156 do \ 157 echo $(INSTALL_DATA) $$X $(DEST_SLSH_HELP_DIR); \ 158 $(INSTALL_DATA) $$X $(DEST_SLSH_HELP_DIR); \ 159 if [ "$$?" != "0" ]; then \ 160 exit 1; \ 161 fi; \ 162 done 163install_docs: 164 @for X in doc/html/*.html; \ 165 do \ 166 echo $(INSTALL_DATA) $$X $(DEST_SLSH_DOC_DIR)/html/; \ 167 $(INSTALL_DATA) $$X $(DEST_SLSH_DOC_DIR)/html/; \ 168 if [ "$$?" != "0" ]; then \ 169 exit 1; \ 170 fi; \ 171 done 172 $(INSTALL_DATA) doc/man/slsh.1 $(DEST_MAN_DIR)/ 173# 174install_slsh: 175 $(INSTALL) $(OBJDIR)/slsh $(DEST_BIN_DIR)/ 176install_static_slsh: 177 $(INSTALL) $(SOBJDIR)/slsh $(DEST_BIN_DIR)/ 178install_slshrc: 179 $(INSTALL_DATA) etc/slsh.rc $(DEST_SLSH_CONF_DIR)/ 180 echo 'prepend_to_slang_load_path("$(SLSH_LOCALLIB_DIR)");' >> $(DEST_SLSH_CONF_DIR)/slsh.rc 181install_common: install_directories install_lib_files install_rline_files install_scripts install_help install_docs 182# 183install: slsh install_common install_slsh install_slshrc 184install-static: static install_common install_static_slsh install_slshrc 185#--------------------------------------------------------------------------- 186runtests: 187 cd lib/test && ./runtests.sh test_*.sl 188#--------------------------------------------------------------------------- 189# Housekeeping 190#--------------------------------------------------------------------------- 191clean: 192 -/bin/rm -f $(OBJDIR_TSTAMP) $(SOBJDIR_TSTAMP) 193 -/bin/rm -f *~ $(OBJDIR)/slsh.o $(OBJDIR)/readline.o $(OBJDIR)/slsh $(OBJDIR)/slsh_exe scripts/*~ lib/*~ 194 -/bin/rm -f $(SOBJDIR)/slsh.o $(SOBJDIR)/readline.o $(SOBJDIR)/slsh $(SOBJDIR)/slsh_exe 195distclean: clean 196 -/bin/rm -f Makefile config.h 197# 198.PHONY: all clean distclean symlinks slsh install install_directories \ 199 install_lib_files install_rline_files install_scripts install_help \ 200 install_docs install-static static install_common \ 201 install_slsh install_static_slsh install_slshrc 202 203