For a new application you create a new Makefile, define LISP_DIR and LISP_APP and then include this makedef file. You can then use the following targets with your application: start, stop, restart, attach, slime, dribble and log.
makedef
# -*- makefile -*- ### User needs to define the lisp working directory #LISP_DIR=${HOME}/lisp/website ### ...and lisp application #LISP_APP=server.lisp ###################################################################### DETACHTTY_EXE=/usr/bin/detachtty ATTACHTTY_EXE=/usr/bin/attachtty RUNTIME_DIR=${LISP_DIR}/.runtime DRIBBLE_FILE=${RUNTIME_DIR}/${LISP_APP}.dribble LOG_FILE=${RUNTIME_DIR}/${LISP_APP}.detachtty PID_FILE=${RUNTIME_DIR}/${LISP_APP}.pid SOCKET_FILE=${RUNTIME_DIR}/${LISP_APP}.socket SLIME_PORT=4005 ###################################################################### all: help help: @echo "" @echo "start - start the lisp server" @echo "stop - stop the lisp server" @echo "restart - restart the lisp server" @echo "attach - attach to the lisp server" @echo "slime - connect emacs to the lisp server" @echo "dribble - tail the dribble file" @echo "log - cat the log file" @echo "" start: cleanup setup start_server log attach start_server: ${DETACHTTY_EXE} \ --dribble-file ${DRIBBLE_FILE} \ --log-file ${LOG_FILE} \ --pid-file ${PID_FILE} \ ${SOCKET_FILE} \ /usr/bin/sbcl --noinform \ --eval "(asdf:operate 'asdf:load-op :modlisp)" \ --eval "(asdf:operate 'asdf:load-op :swank)" \ --eval "(swank:create-swank-server ${SLIME_PORT} swank:*communication-style* #'(lambda (p) p) t)" \ --eval '(load "${LISP_DIR}/${LISP_APP}")' \ --eval '(start-apache-listener)' @sleep 2 setup: @mkdir -p ${RUNTIME_DIR} stop: stop_server cleanup stop_server: ${PID_FILE} @echo "kill `cat ${PID_FILE}`" @kill -9 `cat ${PID_FILE}` restart: stop start cleanup: @rm -fv ${PID_FILE} @rm -fv ${SOCKET_FILE} @rm -fv ${DRIBBLE_FILE} @rm -fv ${LOG_FILE} attach: @${ATTACHTTY_EXE} ${SOCKET_FILE} || true dribble: @tail -f ${DRIBBLE_FILE} || true log: @cat ${LOG_FILE} slime: @emacs -nw --eval '(slime-connect "localhost" 4005)'
sample Makefile
LISP_DIR=${HOME}/lisp/website LISP_APP=server.lisp include ../makedefs.sbcl create_db: mysql -u username < databasename.sql show_db: mysqldump databasename
Category Slime ??