diff options
author | Arun Isaac | 2025-04-07 15:57:53 +0100 |
---|---|---|
committer | Arun Isaac | 2025-04-07 15:57:53 +0100 |
commit | a760bff3efa44c282ed119032a6831bdaac79e7b (patch) | |
tree | 44a74e8d59b44065ab5b3a3270ba57827ec5fc1a /sent/make.scm | |
download | gexp-make-a760bff3efa44c282ed119032a6831bdaac79e7b.tar.gz gexp-make-a760bff3efa44c282ed119032a6831bdaac79e7b.tar.lz gexp-make-a760bff3efa44c282ed119032a6831bdaac79e7b.zip |
Initial commit
Diffstat (limited to 'sent/make.scm')
-rw-r--r-- | sent/make.scm | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/sent/make.scm b/sent/make.scm new file mode 100644 index 0000000..2ec3034 --- /dev/null +++ b/sent/make.scm @@ -0,0 +1,66 @@ +(use-modules (gnu packages commencement) + (gnu packages fontutils) + (gnu packages xorg) + (guix gexp)) + +(define set-up-gcc-gexp + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + + (set-path-environment-variable "PATH" + '("bin") + (list #$gcc-toolchain)) + (set-path-environment-variable "C_INCLUDE_PATH" + '("include") + (list #$gcc-toolchain)) + (set-path-environment-variable "LIBRARY_PATH" + '("lib") + (list #$gcc-toolchain))))) + +(define* (compile source-filename #:key (flags '())) + (computed-file (string-append (basename source-filename ".c") + ".o") + #~(begin + #$set-up-gcc-gexp + (invoke "gcc" "-c" #$(local-file source-filename) + "-o" #$output + #$@flags)))) + +(define* (link output-filename object-files #:key (flags '())) + (computed-file output-filename + #~(begin + #$set-up-gcc-gexp + (invoke "gcc" "-o" #$output + #$@object-files + #$@flags)))) + +(let ((include-dependencies + (directory-union "include" + (list (file-append fontconfig "/include") + (file-append freetype "/include/freetype2") + (file-append libx11 "/include") + (file-append libxft "/include") + (file-append libxrender "/include") + (file-append xorgproto "/include"))))) + (link "sent" + (list (compile "sent/sent.c" + #:flags (list "-DVERSION=\"1\"" + "-I" include-dependencies + "-I" (file-union "include" + `(("arg.h" ,(local-file "sent/arg.h")) + ("config.h" ,(local-file "sent/config.def.h")) + ("drw.h" ,(local-file "sent/drw.h")) + ("util.h" ,(local-file "sent/util.h")))))) + (compile "sent/drw.c" + #:flags (list "-I" include-dependencies + "-I" (file-union "include" + `(("drw.h" ,(local-file "sent/drw.h")) + ("util.h" ,(local-file "sent/util.h")))))) + (compile "sent/util.c" + #:flags (list "-I" (file-union "include" + `(("util.h" ,(local-file "sent/util.h"))))))) + #:flags (list "-L" (file-append fontconfig "/lib") + "-L" (file-append libx11 "/lib") + "-L" (file-append libxft "/lib") + "-lfontconfig" "-lm" "-lX11" "-lXft"))) |