summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2021-07-22 07:26:47 +0000
committerMarge Bot <ben+marge-bot@smart-cactus.org>2021-08-09 15:11:58 -0400
commitd5de970dafd5876ef30601697576167f56b9c132 (patch)
treecb2ccf4bc4c13e39e211beb60915d7bb4ccc477d /configure.ac
parentfc350dba63da7eefbaa2793fe9fe99f8571b75c0 (diff)
downloadhaskell-d5de970dafd5876ef30601697576167f56b9c132.tar.gz
Move `/includes` to `/rts/include`, sort per package better
In order to make the packages in this repo "reinstallable", we need to associate source code with a specific packages. Having a top level `/includes` dir that mixes concerns (which packages' includes?) gets in the way of this. To start, I have moved everything to `rts/`, which is mostly correct. There are a few things however that really don't belong in the rts (like the generated constants haskell type, `CodeGen.Platform.h`). Those needed to be manually adjusted. Things of note: - No symlinking for sake of windows, so we hard-link at configure time. - `CodeGen.Platform.h` no longer as `.hs` extension (in addition to being moved to `compiler/`) so as not to confuse anyone, since it is next to Haskell files. - Blanket `-Iincludes` is gone in both build systems, include paths now more strictly respect per-package dependencies. - `deriveConstants` has been taught to not require a `--target-os` flag when generating the platform-agnostic Haskell type. Make takes advantage of this, but Hadrian has yet to.
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac14
1 files changed, 13 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index 7563ed5af9..da7598d621 100644
--- a/configure.ac
+++ b/configure.ac
@@ -770,6 +770,18 @@ dnl --------------------------------------------------------------
dnl End of configure script option section
dnl --------------------------------------------------------------
+dnl ** Copy headers shared by the RTS and compiler
+dnl --------------------------------------------------------------
+dnl We can't commit symlinks without breaking Windows in the default
+dnl configuration.
+AC_MSG_NOTICE([Creating links for headers shared by the RTS and compiler])
+ln -f rts/include/rts/Bytecodes.h compiler/
+ln -f rts/include/rts/storage/ClosureTypes.h compiler/
+ln -f rts/include/rts/storage/FunTypes.h compiler/
+ln -f rts/include/MachDeps.h compiler/
+ln -f rts/include/stg/MachRegs.h compiler/
+AC_MSG_NOTICE([done.])
+
dnl ** Copy the files from the "fs" utility into the right folders.
dnl --------------------------------------------------------------
AC_MSG_NOTICE([Creating links for in-tree file handling routines])
@@ -1222,7 +1234,7 @@ AC_COMPILE_IFELSE(
AC_DEFINE([CC_SUPPORTS_TLS],[0],[Define to 1 if __thread is supported])
])
-dnl large address space support (see includes/rts/storage/MBlock.h)
+dnl large address space support (see rts/include/rts/storage/MBlock.h)
dnl
dnl Darwin has vm_allocate/vm_protect
dnl Linux has mmap(MAP_NORESERVE)/madv(MADV_DONTNEED)