From 185515075ac3bccedeaf976702bf2a535368b603 Mon Sep 17 00:00:00 2001 From: felix Date: Wed, 6 Dec 2017 23:49:07 +0100 Subject: [PATCH] added -libdir option to csc Also modifies calls to csc in test scripts to use this option so that running "make check" is independent of the installation directory. --- NEWS | 1 + csc.mdoc | 2 ++ csc.scm | 5 +++++ tests/csc-tests.scm | 2 +- tests/runtests.bat | 11 ++++++----- tests/runtests.sh | 11 ++++++----- 6 files changed, 21 insertions(+), 11 deletions(-) diff --git a/NEWS b/NEWS index f3b00b4..3e2c294 100644 --- a/NEWS +++ b/NEWS @@ -31,6 +31,7 @@ - The new "-link" option to csc allows linking with objects from extensions. - The ambiguous "-l" option for csc has been removed (#1193). - Removed deprecated "-n" shorthand for "-emit-inline-file" from csc. + - The option "-libdir" to csc allows overriding the runtime library directory. - Core libraries - Removed support for memory-mapped files (posix), queues diff --git a/csc.mdoc b/csc.mdoc index 9383290..6c749ab 100644 --- a/csc.mdoc +++ b/csc.mdoc @@ -235,6 +235,8 @@ Link extension with compiled executable Require extension and import in compiled code. .It Fl dll , Fl library Compile multiple units into a dynamic library. +.It Fl libdir Ar DIRECTORY +Override location of runtime library directory. .El .Pp Options to other passes: diff --git a/csc.scm b/csc.scm index 196aa4d..9b8fd53 100644 --- a/csc.scm +++ b/csc.scm @@ -434,6 +434,7 @@ Usage: #{csc} [OPTION ...] [FILENAME ...] code -dll -library compile multiple units into a dynamic library + -libdir DIRECTORY override directory for runtime library Options to other passes: @@ -643,6 +644,10 @@ EOF (set! linked-extensions (append linked-extensions (string-split (car rest) ", "))) (set! rest (cdr rest))] + ((-libdir) + (check s rest) + (set! library-dir (car rest)) + (set! rest (cdr rest))) [(-require-extension -R) (check s rest) (t-options "-require-extension" (car rest)) diff --git a/tests/csc-tests.scm b/tests/csc-tests.scm index b97e835..01381ac 100644 --- a/tests/csc-tests.scm +++ b/tests/csc-tests.scm @@ -7,7 +7,7 @@ (define (abs x) (make-pathname (current-directory) x)) (define (run x . args) (system* (string-intersperse (cons (abs x) args)))) -(define (csc . args) (apply run "../csc" "-v" "-compiler ../chicken" "-I.." args)) +(define (csc . args) (apply run "../csc" "-v" "-compiler ../chicken" "-I.." "-libdir .." args)) (csc "null.scm" "-t") (assert (file-exists? "null.c")) diff --git a/tests/runtests.bat b/tests/runtests.bat index b6af433..882e022 100644 --- a/tests/runtests.bat +++ b/tests/runtests.bat @@ -15,9 +15,10 @@ set TYPESDB=..\types.db rem Increase this when tests start failing on "inexplicable" diffs set FCBUFSIZE=500 -set compile=..\csc -types %TYPESDB% -ignore-repository -compiler %CHICKEN% -v -I%TEST_DIR%/.. -L%TEST_DIR%/.. -include-path %TEST_DIR%/.. -o a.out -set compile2=..\csc -compiler %CHICKEN% -v -I%TEST_DIR%/.. -L%TEST_DIR%/.. -include-path %TEST_DIR%/.. -set compile_s=..\csc -s -types %TYPESDB% -ignore-repository -compiler %CHICKEN% -v -I%TEST_DIR%/.. -L%TEST_DIR%/.. -include-path %TEST_DIR%/.. +set compile=..\csc -types %TYPESDB% -ignore-repository -compiler %CHICKEN% -v -I%TEST_DIR%/.. -L%TEST_DIR%/.. -include-path %TEST_DIR%/.. -libdir %TEST_DIR%/.. -o a.out +set compile2=..\csc -compiler %CHICKEN% -v -I%TEST_DIR%/.. -L%TEST_DIR%/.. -include-path %TEST_DIR%/.. -libdir %TEST_DIR%/.. +set compile_s=..\csc -s -types %TYPESDB% -ignore-repository -compiler %CHICKEN% -v -I%TEST_DIR%/.. -L%TEST_DIR%/.. -include-path %TEST_DIR%/.. -libdir %TEST_DIR%/.. +set compile_static=..\csc -static -types %TYPESDB% -ignore-repository -compiler %CHICKEN% -v -I%TEST_DIR%/.. -L%TEST_DIR%/.. -include-path %TEST_DIR%/.. -libdir %TEST_DIR%/.. set interpret=..\csi -n -include-path %TEST_DIR%/.. del /f /q /s *.exe *.so *.o *.import.* ..\foo.import.* %CHICKEN_INSTALL_REPOSITORY% @@ -585,7 +586,7 @@ echo ======================================== linking tests ... if errorlevel 1 exit /b 1 a.out if errorlevel 1 exit /b 1 -%compile2% -link reverser linking-tests.scm -o a.out -static +%compile_static% -link reverser linking-tests.scm -o a.out if errorlevel 1 exit /b 1 a.out if errorlevel 1 exit /b 1 @@ -595,7 +596,7 @@ move reverser.import.scm %CHICKEN_INSTALL_REPOSITORY% if errorlevel 1 exit /b 1 a.out if errorlevel 1 exit /b 1 -%compile2% -link reverser linking-tests.scm -o a.out -static +%compile_static% -link reverser linking-tests.scm -o a.out if errorlevel 1 exit /b 1 a.out if errorlevel 1 exit /b 1 diff --git a/tests/runtests.sh b/tests/runtests.sh index f512bdb..6d23f53 100755 --- a/tests/runtests.sh +++ b/tests/runtests.sh @@ -43,9 +43,10 @@ export CHICKEN_INSTALL_REPOSITORY CHICKEN_REPOSITORY_PATH TYPESDB=../types.db -compile="../csc -types ${TYPESDB} -ignore-repository ${COMPILE_OPTIONS} -o a.out" -compile2="../csc -compiler ${CHICKEN} -v -I${TEST_DIR}/.. -L${TEST_DIR}/.. -include-path ${TEST_DIR}/.." -compile_s="../csc -s -types ${TYPESDB} -ignore-repository ${COMPILE_OPTIONS}" +compile="../csc -types ${TYPESDB} -ignore-repository ${COMPILE_OPTIONS} -o a.out -libdir ${TEST_DIR}/.." +compile2="../csc -compiler ${CHICKEN} -v -I${TEST_DIR}/.. -L${TEST_DIR}/.. -include-path ${TEST_DIR}/.. -libdir ${TEST_DIR}/.." +compile_s="../csc -s -types ${TYPESDB} -ignore-repository ${COMPILE_OPTIONS} -libdir ${TEST_DIR}/.." +compile_static="../csc -compiler ${CHICKEN} -v -static -I${TEST_DIR}/.. -include-path ${TEST_DIR}/.. -libdir ${TEST_DIR}/.." interpret="../csi -n -include-path ${TEST_DIR}/.." time=time @@ -456,12 +457,12 @@ echo "======================================== linking tests ..." $compile2 -unit reverser reverser/tags/1.0/reverser.scm -J -c -o reverser.o $compile2 -link reverser linking-tests.scm -o a.out ./a.out -$compile2 -link reverser linking-tests.scm -o a.out -static +$compile_static -link reverser linking-tests.scm -o a.out ./a.out mv reverser.o reverser.import.scm "$CHICKEN_INSTALL_REPOSITORY" $compile2 -link reverser linking-tests.scm -o a.out ./a.out -$compile2 -link reverser linking-tests.scm -o a.out -static +$compile_static -link reverser linking-tests.scm -o a.out ./a.out echo "======================================== private repository test ..." -- 1.7.9.5