scx/Makefile

75 lines
2.3 KiB
Makefile

### update this to fit your system
SCSH_SRC = /afs/wsi/home/gasbichl/sw/scsh-0.6
SCSH_LIB = /afs/wsi/home/gasbichl/i386_fbsd40/scsh-0.6/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_VM) #$(SCX_IMAGE) #doesn't work yet
### 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
$(SCX_VM): tmpmain.o $(OBJECTS)
$(CC) -g -o $(SCX_VM) -L $(SCSH_LIB) -L $(X11_LIB) \
tmpmain.o $(OBJECTS) -lscsh -lm -lX11 -lcrypt &&
$(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)
( \
echo ",batch on"; \
echo ",config ,load scheme/xlib/xlib-type-interfaces.scm"; \
echo ",config ,load scheme/xlib/xlib-type-package.scm"; \
echo ",config ,load scheme/xlib/xlib-interfaces.scm"; \
echo ",config ,load scheme/xlib/xlib-packages.scm"; \
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 &&
#SCSH_IMAGE = "/afs/wsi/home/dfreese/i386_fbsd43/lib/scheme48/scsh.image"
#main.c:
clean:
rm -f $(SCX_VM) $(SCX) $(SCX_IMAGE) *.o c/*.o c/xlib/*.o