1
0
mirror of https://github.com/janet-lang/janet synced 2024-11-17 22:24:49 +00:00

Cooking on windows

This commit is contained in:
Fyodor Shchukin 2019-01-30 17:31:53 +03:00
parent 46c540b93e
commit a7551e9b4e
2 changed files with 6 additions and 4 deletions

View File

@ -101,6 +101,8 @@ copy README.md dist\README.md
copy janet.lib dist\janet.lib copy janet.lib dist\janet.lib
copy janet.exp dist\janet.exp copy janet.exp dist\janet.exp
copy src\include\janet\janet.h dist\janet.h copy src\include\janet\janet.h dist\janet.h
copy tools\cook.janet dist\cook.janet
copy tools\highlight.janet dist\highlight.janet
exit /b 0 exit /b 0
:TESTFAIL :TESTFAIL

View File

@ -79,14 +79,14 @@
(defn- make-define (defn- make-define
"Generate strings for adding custom defines to the compiler." "Generate strings for adding custom defines to the compiler."
[define value] [define value]
(def prefix (if is-win "\\D" "-D")) (def prefix (if is-win "/D" "-D"))
(if value (if value
(string prefix define "=" value) (string prefix define "=" value)
(string prefix define))) (string prefix define)))
(defn- make-defines (defn- make-defines
"Generate many defines. Takes a dictionary of defines. If a value is "Generate many defines. Takes a dictionary of defines. If a value is
true, generates -DNAME (\\DNAME on windows), otherwise -DNAME=value." true, generates -DNAME (/DNAME on windows), otherwise -DNAME=value."
[defines] [defines]
(seq [[d v] :pairs defines] (make-define d (if (not= v true) v)))) (seq [[d v] :pairs defines] (make-define d (if (not= v true) v))))
@ -94,7 +94,7 @@
(def OPTIMIZE 2) (def OPTIMIZE 2)
(def CC (if is-win "cl" "cc")) (def CC (if is-win "cl" "cc"))
(def LD (if is-win "link" (string CC " -shared"))) (def LD (if is-win "link" (string CC " -shared")))
(def CFLAGS (string (if is-win "/0" "-std=c99 -Wall -Wextra -fpic -O") OPTIMIZE)) (def CFLAGS (string (if is-win "/O" "-std=c99 -Wall -Wextra -fpic -O") OPTIMIZE))
(defn- compile-c (defn- compile-c
"Compile a C file into an object file." "Compile a C file into an object file."
@ -115,7 +115,7 @@
(def olist (string/join objects " ")) (def olist (string/join objects " "))
(if (older-than-some target objects) (if (older-than-some target objects)
(if is-win (if is-win
(shell ld "/out:" target " " olist) (shell ld " /DLL /OUT:" target " " olist " %JANET_PATH%\\janet.lib")
(shell ld " " cflags " -o " target " " olist)))) (shell ld " " cflags " -o " target " " olist))))
(defn- create-buffer-c (defn- create-buffer-c