@@ -1,100 +1,95 @@ ;; -*- mode: Scheme; tab-width: 2; -*- ;; -(cond-expand - [no-library-checks - (define-syntax check-libraries - (syntax-rules () - [(check-libraries [lib fun] ...) - #t]))] - [else - (define-syntax check-libraries - (syntax-rules () - [(check-libraries [lib fun] ...) - (and (find-library lib fun) ...)]))]) - -(if (check-libraries - ["callback" "alloc_trampoline_r"] - ["iup" "IupOpen"] - ["iupim" "IupLoadImage"] - ["iupimglib" "IupImageLibOpen"]) - (begin - (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") - (static-options "-liup -liupcontrols"))) - - (compile -s -O2 -d1 "iup-dialogs.scm" -j iup-dialogs "-liup") - (compile -c -O2 -d1 "iup-dialogs.scm" -j iup-dialogs -unit iup-dialogs) - (compile -s -O2 -d0 "iup-dialogs.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")))) - (warning "IUP or ffcall not found, none of the bindings can be compiled")) + +(define modules + `(-j iup + -j iup-base -j iup-controls -j iup-dialogs + ,@(cond-expand + [disable-iup-glcanvas + '()] + [else + '(-j iup-glcanvas)]) + ,@(cond-expand + [disable-iup-pplot + '()] + [else + '(-j iup-pplot)]) + ,@(cond-expand + [disable-iup-web + '()] + [else + '(-j iup-web)]))) + +(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 + '()] + [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] + [else + (compile -s -O2 -d0 "iup-pplot.import.scm")]) +(cond-expand + [disable-iup-web] + [else + (compile -s -O2 -d0 "iup-web.import.scm")]) + +(install-extension + 'iup + `("iup.so" "iup.o" "iup-types.scm" ,@import-libraries) + `((version 1.2.1) + (static "iup-base.o") + (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")))