### update this to fit your system SCSH_SRC = /home/david/dev/scsh-0.6 SCSH_LIB = /usr/local/lib/scsh X11_PATH = /usr/X11R6 ### the following does not have to be changed (hopefully) SCHEME_INCLUDE = $(SCSH_SRC)/c X11_INCLUDE = $(X11_PATH)/include X11_LIB = $(X11_PATH)/lib CC = gcc SCX_VERSION = "0.1" SCX_VM = scxvm SCX_IMAGE = scx.image SCX = scx ### The first=default target enough: $(SCX) ### Making the VM ### ### The VM is scsh plus all new primitives from the c files ### OBJECTS = \ c/xlib/display.o c/xlib/window.o c/xlib/type.o c/xlib/color.o \ c/xlib/colormap.o c/xlib/pixel.o c/xlib/gcontext.o c/xlib/event.o \ c/xlib/pixmap.o c/xlib/graphics.o c/xlib/font.o \ c/xlib/cursor.o c/xlib/text.o c/xlib/property.o c/xlib/wm.o \ c/xlib/client.o c/xlib/key.o c/xlib/error.o \ c/xlib/extension.o c/xlib/init.o c/xlib/util.o c/xlib/grab.o \ c/xlib/visual.o c/xlib/region.o SCM_FILES = scheme/xlib/atom-type.scm scheme/xlib/client.scm \ scheme/xlib/color-type.scm scheme/xlib/color.scm \ scheme/xlib/colormap-type.scm scheme/xlib/colormap.scm \ scheme/xlib/cursor-type.scm scheme/xlib/cursor.scm \ scheme/xlib/display-type.scm \ scheme/xlib/display.scm scheme/xlib/drawable-type.scm \ scheme/xlib/drawable.scm scheme/xlib/error.scm \ scheme/xlib/event-type.scm scheme/xlib/event.scm \ scheme/xlib/extension.scm scheme/xlib/font-type.scm \ scheme/xlib/font.scm scheme/xlib/gcontext-type.scm \ scheme/xlib/gcontext.scm scheme/xlib/grab.scm scheme/xlib/graphics.scm \ scheme/xlib/helper.scm scheme/xlib/key.scm scheme/xlib/pixel-type.scm \ scheme/xlib/pixel.scm scheme/xlib/pixmap-type.scm \ scheme/xlib/pixmap.scm scheme/xlib/property.scm \ scheme/xlib/region-type.scm scheme/xlib/region.scm \ scheme/xlib/text.scm scheme/xlib/utility.scm \ scheme/xlib/visual-type.scm scheme/xlib/visual.scm \ scheme/xlib/window-type.scm scheme/xlib/window.scm \ scheme/xlib/wm.scm SCM_CONFIG_FILES = scheme/xlib/xlib-type-interfaces.scm \ scheme/xlib/xlib-type-package.scm \ scheme/xlib/xlib-interfaces.scm \ scheme/xlib/xlib-packages.scm $(SCX_VM): tmpmain.o $(OBJECTS) $(CC) -g -o $(SCX_VM) -L $(SCSH_LIB) -L $(X11_LIB) \ tmpmain.o $(OBJECTS) -lscsh -lm -lX11 -lcrypt -ldl $(OBJECTS): c/xlib/xlib.h .c.o: $(CC) -g -c -I $(X11_INCLUDE) -I $(SCHEME_INCLUDE) -o $@ $< tmpmain.o: c/main.c $(CC) -g -c -DSCSHIMAGE=\"$(SCSH_LIB)/scsh.image\" -I $(X11_INCLUDE) -I $(SCHEME_INCLUDE) -o $@ $< main.o: c/main.c $(CC) -g -c -DSCSHIMAGE=\"`pwd`/scx.image\" -I $(X11_INCLUDE) -I $(SCHEME_INCLUDE) -o $@ $< ### Making the Image ### ### The Image is a dump of the VM with all new packages loaded, and ### xlib opened. STARTUP_MSG = "with SCX $(SCX_VERSION), the X11 support" $(SCX_IMAGE): $(SCX_VM) $(SCM_FILES) $(SCM_CONFIG_FILES) ( \ echo ",batch on"; \ echo ",config ,load $(SCM_CONFIG_FILES)"; \ echo ",load-package xlib"; \ echo ",load-package xlib-types"; \ echo ",dump $(SCX_IMAGE) \"$(STARTUP_MSG)\"" \ ) | ./$(SCX_VM) $(SCX): $(SCX_IMAGE) main.o $(OBJECTS) $(CC) -g -o $@ -L $(SCSH_LIB) -L $(X11_LIB) \ main.o $(OBJECTS) -lscsh -lm -lX11 -lcrypt -ldl clean: rm -f $(SCX_VM) $(SCX) $(SCX_IMAGE) *.o c/*.o c/xlib/*.o