mirror of
https://github.com/open-goal/jak-project
synced 2026-09-12 12:55:22 -04:00
[jak2] goalc supports multiple projects (#1619)
* [jak2] goalc supports multiple projects * disable deci2 server if not debugging
This commit is contained in:
+13
-22
@@ -1,13 +1,5 @@
|
||||
;;-*-Lisp-*-
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; OTHER STUFF
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;; tell compiler about stuff defined/implemented in the runtime.
|
||||
(asm-file "goal_src/jak1/kernel-defs.gc")
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; BUILD SYSTEM
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
@@ -38,10 +30,6 @@
|
||||
`(asm-file ,file :no-code)
|
||||
)
|
||||
|
||||
|
||||
(defmacro load-art-import (name)
|
||||
`(asm-file ,(string-append "goal_src/jak1/import/" (symbol->string name) "-ag.gc") :no-code :no-throw))
|
||||
|
||||
(defmacro load-imports ()
|
||||
`(begin
|
||||
,@(apply run-frontend-command all-import-files)
|
||||
@@ -1044,14 +1032,17 @@
|
||||
`(defconstant ,name (-> self draw art-group data ,idx))
|
||||
)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Load Project
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;;; build system stuff
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;; hack to get a goos variable in goal
|
||||
(defmacro __get_jak1_full_game () *jak1-full-game*)
|
||||
(defconstant *jak1-full-game* (__get_jak1_full_game))
|
||||
|
||||
;; todo: loading jak1 by default
|
||||
(load-project "goal_src/jak1/game.gp")
|
||||
(#cond
|
||||
((eq? GAME_VERSION 'jak1)
|
||||
(asm-file "goal_src/jak1/compiler-setup.gc")
|
||||
(seval (fmt #t "Jak 1 Mode\n"))
|
||||
)
|
||||
((eq? GAME_VERSION 'jak2)
|
||||
(asm-file "goal_src/jak2/compiler-setup.gc")
|
||||
(seval (fmt #t "Jak 2 Mode\n"))
|
||||
)
|
||||
)
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
;;
|
||||
;; Compiler Setup for Jak 1
|
||||
;;
|
||||
|
||||
;; load kernel type definitions.
|
||||
;; these types/functions are provided by Jak 1's runtime.
|
||||
(asm-file "goal_src/jak1/kernel-defs.gc")
|
||||
|
||||
;; load jak 1 project
|
||||
(load-project "goal_src/jak1/game.gp")
|
||||
|
||||
;; jak 1 - specific library stuff.
|
||||
|
||||
(defmacro __get_jak1_full_game () *jak1-full-game*)
|
||||
(defconstant *jak1-full-game* (__get_jak1_full_game))
|
||||
|
||||
(defmacro load-art-import (name)
|
||||
`(asm-file ,(string-append "goal_src/jak1/import/" (symbol->string name) "-ag.gc") :no-code :no-throw))
|
||||
@@ -75,15 +75,15 @@
|
||||
)
|
||||
|
||||
(defenum link-flag
|
||||
:bitfield #t
|
||||
:type int32
|
||||
(output-load-msg 0)
|
||||
(output-load-true-msg 1)
|
||||
(execute-login 2)
|
||||
(print-login 3)
|
||||
(force-debug 4)
|
||||
(fast-link 5)
|
||||
)
|
||||
:bitfield #t
|
||||
:type int32
|
||||
(output-load-msg 0)
|
||||
(output-load-true-msg 1)
|
||||
(execute-login 2)
|
||||
(print-login 3)
|
||||
(force-debug 4)
|
||||
(fast-link 5)
|
||||
)
|
||||
|
||||
|
||||
(define-extern string->symbol (function string symbol))
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
;;
|
||||
;; Compiler Setup for Jak 2
|
||||
;;
|
||||
|
||||
;; load kernel type definitions.
|
||||
;; these types/functions are provided by Jak 2's runtime.
|
||||
(asm-file "goal_src/jak2/kernel-defs.gc")
|
||||
|
||||
;; load jak 1 project
|
||||
(load-project "goal_src/jak2/game.gp")
|
||||
@@ -0,0 +1,77 @@
|
||||
;; kernel-defs.gc
|
||||
;; everything defined in the C Kernel / runtime
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;;; kscheme - InitHeapAndSymbol
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;; fixed symbols
|
||||
(define-extern #f symbol)
|
||||
(define-extern #t symbol)
|
||||
(define-extern function type)
|
||||
(define-extern basic type)
|
||||
(define-extern string type)
|
||||
(define-extern symbol type)
|
||||
(define-extern type type)
|
||||
(define-extern object type)
|
||||
(define-extern link-block type)
|
||||
(define-extern integer type)
|
||||
(define-extern sinteger type)
|
||||
(define-extern uinteger type)
|
||||
(define-extern binteger type)
|
||||
(define-extern int8 type)
|
||||
(define-extern int16 type)
|
||||
(define-extern int32 type)
|
||||
(define-extern int64 type)
|
||||
(define-extern int128 type)
|
||||
(define-extern uint8 type)
|
||||
(define-extern uint16 type)
|
||||
(define-extern uint32 type)
|
||||
(define-extern uint64 type)
|
||||
(define-extern uint128 type)
|
||||
(define-extern float type)
|
||||
(define-extern process-tree type)
|
||||
(define-extern process type)
|
||||
(define-extern thread type)
|
||||
(define-extern structure type)
|
||||
(define-extern pair type)
|
||||
(define-extern pointer type)
|
||||
(define-extern number type)
|
||||
(define-extern array type)
|
||||
(define-extern vu-function type)
|
||||
(define-extern connectable type)
|
||||
(define-extern stack-frame type)
|
||||
(define-extern file-stream type)
|
||||
(define-extern kheap type)
|
||||
(define-extern nothing (function none))
|
||||
(define-extern delete-basic (function basic none))
|
||||
(define-extern static symbol)
|
||||
(define-extern global kheap)
|
||||
(define-extern debug kheap)
|
||||
(define-extern loading-level kheap) ;; not a kheap at boot
|
||||
(define-extern loading-package kheap) ;; not a kheap at boot
|
||||
(define-extern process-level-heap kheap) ;; not a kheap at boot
|
||||
(define-extern stack symbol)
|
||||
(define-extern scratch symbol)
|
||||
(define-extern *stratch-top* pointer)
|
||||
(define-extern zero-func (function int))
|
||||
|
||||
(defenum kmalloc-flags
|
||||
:bitfield #t
|
||||
(align-16 4)
|
||||
(align-64 6)
|
||||
(align-256 8)
|
||||
(memset 12)
|
||||
(top 13)
|
||||
)
|
||||
|
||||
(defenum link-flag
|
||||
:bitfield #t
|
||||
:type int32
|
||||
(output-load-msg 0)
|
||||
(output-load-true-msg 1)
|
||||
(execute-login 2)
|
||||
(print-login 3)
|
||||
(force-debug 4)
|
||||
(fast-link 5)
|
||||
)
|
||||
Reference in New Issue
Block a user