home *** CD-ROM | disk | FTP | other *** search
Makefile | 1991-07-07 | 5.1 KB | 169 lines |
- #
- # Makefile for CLX
- # (X11 R4.4 release, Franz Allegro Common Lisp version)
- #
-
- # *************************************************************************
- # * Change the next line to point to where you have Common Lisp installed *
- # * (make sure the Lisp doesn't already have CLX loaded in) *
- # *************************************************************************
- CL = /usr/local/bin/cl
-
- RM = /bin/rm
- SHELL = /bin/sh
- ECHO = /bin/echo
- TAGS = /usr/local/lib/emacs/etc/etags
-
- # Name of dumped lisp
- CLX = CLX
-
- CLOPTS = -qq
-
- # Use this one for Suns
- CFLAGS = -O -DUNIXCONN
- # Use this one for Silicon Graphics & Mips Inc MIPS based machines
- # CFLAGS = -O -G 0 -I/usr/include/bsd
- # Use this one for DEC MIPS based machines
- # CFLAGS = -O -G 0 -DUNIXCONN
- # Use this one for HP machines
- # CFLAGS = -O -DSYSV -DUNIXCONN
-
-
- # Lisp optimization for compiling
- SPEED = 3
- SAFETY = 0
-
-
- C_SRC = excldep.c socket.c
- C_OBJS = excldep.o socket.o
-
- L_OBJS = defsystem.fasl package.fasl excldep.fasl depdefs.fasl clx.fasl \
- dependent.fasl exclcmac.fasl macros.fasl bufmac.fasl buffer.fasl \
- display.fasl gcontext.fasl requests.fasl input.fasl fonts.fasl \
- graphics.fasl text.fasl attributes.fasl translate.fasl keysyms.fasl \
- manager.fasl image.fasl resource.fasl
-
- L_NOMACROS_OBJS = package.fasl excldep.fasl depdefs.fasl clx.fasl \
- dependent.fasl buffer.fasl display.fasl gcontext.fasl \
- requests.fasl input.fasl fonts.fasl graphics.fasl text.fasl \
- attributes.fasl translate.fasl keysyms.fasl manager.fasl image.fasl \
- resource.fasl
-
- L_SRC = defsystem.cl package.cl excldep.cl depdefs.cl clx.cl \
- dependent.cl exclcmac.cl macros.cl bufmac.cl buffer.cl \
- display.cl gcontext.cl requests.cl input.cl fonts.cl \
- graphics.cl text.cl attributes.cl translate.cl keysyms.cl \
- manager.cl image.cl resource.cl
-
- # default and aliases
- all: no-clos
- # all: partial-clos
- compile-CLX-for-CLUE: compile-partial-clos-CLX
- clue: partial-clos
-
- #
- # Three build rules are provided: no-clos, partial-clos, and full-clos.
- # The first is no-clos, which results in a CLX whose datastructures are
- # all defstructs. partial-clos results in xlib:window, xlib:pixmap, and
- # xlib:drawable being CLOS instances, all others defstructs. full-clos
- # makes all CLX complex datatypes into CLOS instances.
- #
- # (note that the :clos feature implies native CLOS *not* PCL).
- #
-
- no-clos: $(C_OBJS) compile-no-clos-CLX cat
-
- #
- # This rule is used to compile CLX to be used with XCW version 2, or CLUE.
- #
- partial-clos: $(C_OBJS) compile-partial-clos-CLX cat
-
- full-clos: $(C_OBJS) compile-full-clos-CLX cat
-
-
- c: $(C_OBJS)
-
-
- compile-no-clos-CLX: $(C_OBJS)
- $(ECHO) " \
- (set-case-mode :case-sensitive-lower) \
- (proclaim '(optimize (speed $(SPEED)) (safety $(SAFETY)))) \
- #+(version>= 4 0) (pushnew :clx-ansi-common-lisp *features*) \
- (load \"defsystem\") \
- #+allegro (compile-system :clx) \
- #-allegro (compile-clx) \
- #+allegro (compile-system :clx-debug)" \
- | $(CL) $(CLOPTS) -batch
-
- compile-partial-clos-CLX: $(C_OBJS)
- $(ECHO) " \
- #+clos (set-case-mode :case-sensitive-lower) \
- #-clos (setq excl::*print-nickname* t) \
- (proclaim '(optimize (speed $(SPEED)) (safety $(SAFETY)))) \
- (unless (or (find-package 'clos) (find-package 'pcl)) \
- (let ((spread (sys:gsgc-parameter :generation-spread))) \
- (setf (sys:gsgc-parameter :generation-spread) 1) \
- (require :pcl) \
- (provide :pcl) \
- (gc) (gc) \
- (setf (sys:gsgc-parameter :generation-spread) spread))) \
- #+(version>= 4 0) (pushnew :clx-ansi-common-lisp *features*) \
- (load \"defsystem\") \
- (load \"package\") \
- (setq xlib::*def-clx-class-use-defclass* '(xlib:window xlib:pixmap xlib:drawable)) \
- #+allegro (compile-system :clx) \
- #-allegro (compile-clx \"\" \"\" :for-clue t) \
- #+allegro (compile-system :clx-debug)" \
- | $(CL) $(CLOPTS) -batch
-
- compile-full-clos-CLX: $(C_OBJS)
- $(ECHO) " \
- #+clos (set-case-mode :case-sensitive-lower) \
- #-clos (setq excl::*print-nickname* t) \
- (proclaim '(optimize (speed $(SPEED)) (safety $(SAFETY)))) \
- (unless (or (find-package 'clos) (find-package 'pcl)) \
- (let ((spread (sys:gsgc-parameter :generation-spread))) \
- (setf (sys:gsgc-parameter :generation-spread) 1) \
- (require :pcl) \
- (provide :pcl) \
- (gc) (gc) \
- (setf (sys:gsgc-parameter :generation-spread) spread))) \
- #+(version>= 4 0) (pushnew :clx-ansi-common-lisp *features*) \
- (load \"defsystem\") \
- (load \"package\") \
- (setq xlib::*def-clx-class-use-defclass* t) \
- #+allegro (compile-system :clx) \
- #-allegro (compile-clx \"\" \"\" :for-clue t) \
- #+allegro (compile-system :clx-debug)" \
- | $(CL) $(CLOPTS) -batch
-
-
- cat:
- -cat $(L_NOMACROS_OBJS) > CLX.fasl
-
-
- load-CLX:
- $(ECHO) " \
- (let ((spread (sys:gsgc-parameter :generation-spread))) \
- (setf (sys:gsgc-parameter :generation-spread) 1) \
- (load \"defsystem\") \
- #+allegro (load-system :clx) \
- #-allegro (load-clx) \
- (gc :tenure) \
- (setf (sys:gsgc-parameter :generation-spread) spread)) \
- (gc t)" \
- '(dumplisp :name "$(CLX)" #+allegro :checkpoint #+allegro nil)' \
- "(exit)" | $(CL) $(CLOPTS)
-
- clean:
- $(RM) -f *.fasl debug/*.fasl $(CLX) core $(C_OBJS) make.out
-
-
- install:
- mv CLX.fasl $(DEST)/clx.fasl
- mv *.o $(DEST)
-
-
- tags:
- $(TAGS) $(L_SRC) $(C_SRC)
-