From 40fcb8e61dfc7ef3832144542f0761bf2f997250 Mon Sep 17 00:00:00 2001 From: frese Date: Mon, 28 Jan 2002 00:23:38 +0000 Subject: [PATCH] - updated for new libs directory and structures, resp. the xpm package. --- Makefile | 27 ++++++++++++++++++--------- c/main.c | 34 ++++++++++------------------------ 2 files changed, 28 insertions(+), 33 deletions(-) diff --git a/Makefile b/Makefile index 12004b8..ec4b87f 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,7 @@ SCSH_SRC = /home/david/dev/scsh-0.6 SCSH_LIB = /usr/local/lib/scsh X11_PATH = /usr/X11R6 +LIB_DL = -ldl ### the following does not have to be changed (hopefully) SCHEME_INCLUDE = $(SCSH_SRC)/c @@ -15,11 +16,13 @@ SCX_VM = scxvm SCX_IMAGE = scx.image SCX = scx +LIBS = -lscsh -lm -lX11 -lcrypt -lXpm $(LIB_DL) + ### The first=default target enough: $(SCX) -### Making the VM ### -### The VM is scsh plus all new primitives from the c files ### +### 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 \ @@ -28,7 +31,8 @@ OBJECTS = \ 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 + c/xlib/visual.o c/xlib/region.o \ + c/libs/xpm.o SCM_FILES = scheme/xlib/atom-type.scm scheme/xlib/client.scm \ scheme/xlib/color-type.scm scheme/xlib/color.scm \ @@ -48,16 +52,20 @@ SCM_FILES = scheme/xlib/atom-type.scm scheme/xlib/client.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 + scheme/xlib/wm.scm \ + scheme/libs/xpm.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 + scheme/xlib/xlib-packages.scm \ + scheme/libs/libs-interfaces.scm scheme/libs/libs-packages.scm + +PACKAGES = xlib xlib-types xpm $(SCX_VM): tmpmain.o $(OBJECTS) $(CC) -g -o $(SCX_VM) -L $(SCSH_LIB) -L $(X11_LIB) \ - tmpmain.o $(OBJECTS) -lscsh -lm -lX11 -lcrypt -ldl + tmpmain.o $(OBJECTS) $(LIBS) $(OBJECTS): c/xlib/xlib.h .c.o: @@ -70,7 +78,7 @@ main.o: c/main.c $(CC) -g -c -DSCSHIMAGE=\"`pwd`/scx.image\" -I $(X11_INCLUDE) -I $(SCHEME_INCLUDE) -o $@ $< -### Making the Image ### +### Making the Image ### The Image is a dump of the VM with all new packages loaded, and ### xlib opened. @@ -82,12 +90,13 @@ $(SCX_IMAGE): $(SCX_VM) $(SCM_FILES) $(SCM_CONFIG_FILES) echo ",config ,load $(SCM_CONFIG_FILES)"; \ echo ",load-package xlib"; \ echo ",load-package xlib-types"; \ + echo ",load-package xpm"; \ 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 + main.o $(OBJECTS) $(LIBS) clean: - rm -f $(SCX_VM) $(SCX) $(SCX_IMAGE) *.o c/*.o c/xlib/*.o + rm -f $(SCX_VM) $(SCX) $(SCX_IMAGE) *.o c/*.o c/xlib/*.o c/libs/*.o diff --git a/c/main.c b/c/main.c index d3467ba..e3aabf9 100644 --- a/c/main.c +++ b/c/main.c @@ -1,5 +1,7 @@ #include "scheme48.h" +/* Xlib */ + extern void scx_init_window(); extern void scx_init_display(); extern void scx_init_type(); @@ -25,8 +27,13 @@ extern void scx_init_grab(); extern void scx_init_visual(); extern void scx_init_region(); +/* Xpm */ + +extern void scx_init_xpm(); + int main(int argc, char **argv) { - // char** my_argv = argv; + + /* Xlib */ s48_add_external_init(scx_init_window); s48_add_external_init(scx_init_display); @@ -54,31 +61,10 @@ int main(int argc, char **argv) { s48_add_external_init(scx_init_visual); s48_add_external_init(scx_init_region); - /* char **argp; //JMG - char *image_name = DEFAULT_IMAGE_NAME; - long heap_size = DEFAULT_HEAP_SIZE; // in numbers of cells - long stack_size = DEFAULT_STACK_SIZE; // in numbers of cells - char *object_file = NULL; // specified via a command line argument - char *prog_name; + /* Xpm */ -#if defined(STATIC_AREAS) - extern long static_entry; - extern long static_symbol_table; - extern long static_imported_binding_table, static_exported_binding_table; - extern long p_count, *p_areas[], p_sizes[]; - extern long i_count, *i_areas[], i_sizes[]; -#endif + s48_add_external_init(scx_init_xpm); - long vm_argc = 0; - char *me = *argv; // Save program name. - prog_name = *argv++; - - argv=process_args(argv, - &heap_size, &stack_size, - &object_file, &image_name); - for(argc=0, argp=argv; *argp; argc++, argp++); // Recompute argc. - return internal_s48_main(heap_size, stack_size, prog_name, object_file, image_name, argc, argv); - */ s48_main(8000000, 64000, SCSHIMAGE,