1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
+
+
+
+
-
+
-
-
-
+
+
-
-
-
+
+
+
+
+
+
-
-
+
+
+
+
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
+
-
+
|
;; -*- mode: Scheme; tab-width: 2; -*- ;;
(define modules
`(-j iup
-j iup-base -j iup-controls -j iup-dialogs
(cond-expand
,@(cond-expand
[no-library-checks
(define-syntax check-libraries
(syntax-rules ()
[disable-iup-glcanvas
'()]
[(check-libraries [lib fun] ...)
#t]))]
[else
[else
'(-j iup-glcanvas)])
,@(cond-expand
[disable-iup-pplot
'()]
[else
(define-syntax check-libraries
(syntax-rules ()
'(-j iup-pplot)])
,@(cond-expand
[disable-iup-web
'()]
[(check-libraries [lib fun] ...)
(and (find-library lib fun) ...)]))])
[else
'(-j iup-web)])))
(if (check-libraries
["callback" "alloc_trampoline_r"]
["iup" "IupOpen"]
["iupim" "IupLoadImage"]
["iupimglib" "IupImageLibOpen"])
(begin
(define import-libraries
`("iup.import.so"
"iup-base.import.so" "iup-controls.import.so" "iup-dialogs.import.so"
,@(cond-expand
[disable-iup-glcanvas
'()]
[else
'("iup-glcanvas.import.so")])
,@(cond-expand
[disable-iup-pplot
'()]
[else
'("iup-pplot.import.so")])
,@(cond-expand
[disable-iup-web
'()]
(compile -s -O2 -d1 "iup-base.scm" -j iup-base "-lcallback -liup -liupim -liupimglib")
(compile -c -O2 -d1 "iup-base.scm" -j iup-base -unit iup-base)
(compile -s -O2 -d0 "iup-base.import.scm")
(install-extension
'iup-base
'("iup-base.so" "iup-base.o" "iup-base.import.so" "iup-types.scm")
'((version 1.0.2)
(static "iup-base.o")
(static-options "-lcallback -liup -liupim -liupimglib")))
(compile -s -O2 -d1 "iup-controls.scm" -j iup-controls "-liup -liupcontrols")
(compile -c -O2 -d1 "iup-controls.scm" -j iup-controls -unit iup-controls)
(compile -s -O2 -d0 "iup-controls.import.scm")
(install-extension
'iup-controls
'("iup-controls.so" "iup-controls.o" "iup-controls.import.so")
'((version 1.0.2)
(static "iup-controls.o")
[else
'("iup-web.import.so")])))
(define native-libraries
`("-lcallback"
"-liup" "-liupim" "-liupimglib" "-liupcontrols"
,@(cond-expand
[disable-iup-glcanvas
'()]
[else
'("-liupgl")])
,@(cond-expand
[disable-iup-pplot
'()]
[else
'("-liup_pplot")])
,@(cond-expand
[disable-iup-web
'()]
[else
'("-liupweb")])))
(compile -s -O2 -d1 "iup.scm" ,@modules ,@native-libraries)
(compile -c -O2 -d1 "iup.scm" -unit iup)
(compile -s -O2 -d0 "iup.import.scm")
(compile -s -O2 -d0 "iup-base.import.scm")
(compile -s -O2 -d0 "iup-controls.import.scm")
(compile -s -O2 -d0 "iup-dialogs.import.scm")
(cond-expand
[disable-iup-glcanvas]
[else
(compile -s -O2 -d0 "iup-glcanvas.import.scm")])
(cond-expand
[disable-iup-pplot]
(static-options "-liup -liupcontrols")))
(compile -s -O2 -d1 "iup-dialogs.scm" -j iup-dialogs "-liup")
[else
(compile -s -O2 -d0 "iup-pplot.import.scm")])
(compile -c -O2 -d1 "iup-dialogs.scm" -j iup-dialogs -unit iup-dialogs)
(compile -s -O2 -d0 "iup-dialogs.import.scm")
(install-extension
(cond-expand
[disable-iup-web]
[else
(compile -s -O2 -d0 "iup-web.import.scm")])
(install-extension
'iup-dialogs
'("iup-dialogs.so" "iup-dialogs.o" "iup-dialogs.import.so")
'((version 1.0.2)
(static "iup-dialogs.o")
(static-options "-liup")))
(if (check-libraries ["iupgl" "IupGLCanvasOpen"])
(begin
(compile -s -O2 -d1 "iup-glcanvas.scm" -j iup-glcanvas "-liup -liupgl")
(compile -c -O2 -d1 "iup-glcanvas.scm" -j iup-glcanvas -unit iup-glcanvas)
(compile -s -O2 -d0 "iup-glcanvas.import.scm")
(install-extension
'iup-glcanvas
'("iup-glcanvas.so" "iup-glcanvas.o" "iup-glcanvas.import.so")
'((version 1.0.2)
(static "iup-glcanvas.o")
(static-options "-liup -liupgl"))))
(warning "IUP GLCanvas not found, some bindings cannot be compiled"))
(if (check-libraries ["iup_pplot" "IupPPlotOpen"])
(begin
(compile -s -O2 -d1 "iup-pplot.scm" -j iup-pplot "-liup -liup_pplot")
(compile -c -O2 -d1 "iup-pplot.scm" -j iup-pplot -unit iup-pplot)
(compile -s -O2 -d0 "iup-pplot.import.scm")
(install-extension
'iup-pplot
'("iup-pplot.so" "iup-pplot.o" "iup-pplot.import.so")
'((version 1.0.2)
(static "iup-pplot.o")
(static-options "-liup -liup_pplot"))))
(warning "IUP PPlot not found, some bindings cannot be compiled"))
(compile -s -O2 -d1 "iup.scm" -j iup)
(compile -c -O2 -d1 "iup.scm" -j iup -unit iup)
(compile -s -O2 -d0 "iup.import.scm")
(install-extension
'iup
'("iup.so" "iup.o" "iup.import.so")
'((version 1.0.2)
(static "iup.o"))))
'iup
`("iup.so" "iup.o" "iup-types.scm" ,@import-libraries)
`((version 1.2.1)
(static "iup-base.o")
(warning "IUP or ffcall not found, none of the bindings can be compiled"))
(static-options ,(string-intersperse native-libraries))))
(compile -s -O2 -d1 "iup-dynamic.scm" -j iup-dynamic)
(compile -c -O2 -d1 "iup-dynamic.scm" -j iup-dynamic -unit iup-dynamic)
(compile -s -O2 -d0 "iup-dynamic.import.scm")
(install-extension
'iup-dynamic
'("iup-dynamic.so" "iup-dynamic.o" "iup-dynamic.import.so")
'((version 1.0.2)
'((version 1.2.1)
(static "iup-dynamic.o")))
|