Commit Graph

72 Commits

Author SHA1 Message Date
Laytan Laats d98f848247 fix debug compiler build message not ending output with a newline 2024-08-10 19:07:30 +02:00
Jeroen van Rijn bc6deab175 echo -> printf for build_odin.sh message 2024-08-09 09:46:45 +02:00
Laytan Laats 8b98fff98e add debug build message and align more with build.bat
1. if ran without choosing a build type (just `make` or
   `build_odin.sh`), print out a message about it being a debug build
2. Add `make release-native` alongside `make release_native` to align
   with `build_odin.sh release-native`
3. Only run the demo if it is a debug build (just like `build.bat`)
2024-08-08 15:33:40 +02:00
Jeroen van Rijn 69a15ca5b6 Don't copy LLVM shared object on Linux
We copy the LLVM shared object when building Odin on Linux. Contrary the comment in `build_odin.sh`,
this is unnecessary, and Odin can be compiled and itself compile things just fine without this step.

This is then packaged up at release and leads to #4019 and #4033. The Linux release builds are built
on Ubuntu and not strictly supported on other Linux distributions. Building from source is preferred.
2024-08-07 14:50:45 +02:00
Jeroen van Rijn b02291b20a Compile demo with -vet -strict-style. 2024-07-10 19:26:35 +02:00
Laytan Laats eeb057b76d darwin: fix sysroot retrieval for some systems
Got a report on Discord that the current way didn't work for a user,
this change did work and I confirmed with @harold-b (who initially added
this) that it also works for them and is actually a better way.
2024-05-30 01:53:38 +02:00
Laytan Laats 5027cfb618 revert $(llvm-config --bindir)/clang++ to get the cpp compiler
A few reports of either people not having this clang++ or having it but
it not finding system headers. On top of that, the reason we added this
in the first place was a bug that surfaced on clang-18 which we've since
fixed.

Order will now be clang++ from path, then the llvm bindir clang++, then an
error.

This can all still be overwritten with `CXX=blah make` like before.
2024-05-26 20:11:07 +02:00
Harold Brenes f1b291ed62 Attempt to automatically resolve the sysroot on build_odin.sh on macOS 2024-05-16 17:53:41 -04:00
Andreas T Jonsson b72c2edabb Merge branch 'master' into netbsd 2024-05-10 09:04:52 +02:00
Laytan Laats ecddf3b7f1 llvm-18: cleanup 2024-05-07 16:52:46 +02:00
Laytan Laats f64e8ffd64 llvm-18: fix linking the compiler with clang-18 2024-05-07 16:52:46 +02:00
Laytan Laats bb58926b7a llvm 18: general unix and darwin specifics 2024-05-07 16:52:46 +02:00
Su3h7aM 30ff15e538 build: uses correct clang++ binary for non-standard versions 2024-05-03 13:20:51 -03:00
Andreas T Jonsson 7feff1c113 Merged with master 2024-05-02 09:27:46 +02:00
Feoramund 92402a75f6 Fix wrong llvm-config in build script for FreeBSD 2024-04-26 18:40:59 -04:00
Andreas T Jonsson 4558f3992a Initial commit of NetBSD port 2024-04-16 14:27:29 +02:00
Muhammad f20d0202fa Use a POSIX-compliant equality operator. 2024-03-11 06:05:42 +00:00
gingerBill 53ce945034 Merge pull request #3230 from avanspector/haiku
Add Haiku OS support
2024-03-08 11:15:13 +00:00
Laytan Laats 23cd64ec35 reduce dynamic library dependencies for macos release 2024-02-29 23:39:18 +01:00
Slendi c178f7199d Get Odin to compile on Haiku
This patch makes Odin to compile on Haiku which is a good first step.
Now, all that's needed to do is to figure out how to do futexes, which
I am blaming for the program crashing.
2024-02-15 15:51:28 +02:00
Jeroen van Rijn 4aa8834d39 Add os.args to demo. 2023-11-27 21:01:27 +01:00
evertonse 3e7b5670fb Check for llvm-config14 on unix 2023-11-21 18:48:47 -03:00
jcmdln 21f9e7f5e5 Fix Linux release pipeline which expects to bundle libLLVM*.so 2023-10-16 16:33:26 -04:00
jcmdln 51248270e1 Remove [[ for POSIX shell support 2023-10-15 12:18:51 -04:00
jcmdln d0037fcf6b Allow running in POSIX shells 2023-10-14 22:01:38 -04:00
jcmdln b25fba6175 Fix typo in GIT_SHA collection 2023-10-14 18:10:42 -04:00
jcmdln afcdbf1ba6 Don't implicitly try 'llvm-config-14', try fallback or set LLVM_CONFIG; Restore FreeBSD llvm-config discovery 2023-10-14 18:07:20 -04:00
jcmdln 8eff75a484 Hoist GIT_SHA discovery 2023-10-14 17:51:28 -04:00
jcmdln e232cabfab Remove extra newlines 2023-10-14 17:46:34 -04:00
jcmdln e5ed388191 Ensure user defined LLVM_CONFIG is respected 2023-10-14 17:45:27 -04:00
jcmdln c0ac3de272 Hunt for supported 'llvm-config' executable 2023-10-14 17:41:19 -04:00
jcmdln abde9a99c3 Fix typos in references to OS_ARCH, OS_NAME 2023-10-14 17:32:41 -04:00
jcmdln bdc74a03c0 Refactor to improve handling of LLVM_VERSION checks 2023-10-14 16:58:34 -04:00
jcmdln fa2b68dac6 Fix MAX_LLVM_VERSION panic messages 2023-10-12 01:47:51 -04:00
jcmdln bd86cb22e0 Support LLVM >=17.0.1 on Darwin and Linux 2023-10-11 21:06:42 -04:00
Hasan Yasin Ozturk 963eeee361 Fix dropped "dev-" prefix from version tag
In commit c3a31666, "dev-" prefix was dropped unintentionally. This commit fixes
that.
2023-07-31 17:46:45 +03:00
Hasan Yasin Ozturk 3d16880d95 Set version date to commit date instead of build date
Fixes #2688

This commit updates `build_odin.sh` and `build.bat` so that date of the commit
is used for the version tag, instead of the build time.
2023-07-31 17:29:56 +03:00
Simon Rowe d167d18bb3 Update build_odin.sh to better support optimisation on Arm CPUs
The `build_odin` flags include the option `release-native`.

The current `EXTRAFLAGS` set however don't work for Arm CPUs as they dont support `-march=native`.

Added code to detect CPU and either set the preferred flag for Arm CPUs (ie `-mcpu=native`) or keep the current default.

Information on preferred Arm CPU optimisation flag taken from here: https://community.arm.com/arm-community-blogs/b/tools-software-ides-blog/posts/compiler-flags-across-architectures-march-mtune-and-mcpu

Changes tested on an Apple Silicon M1 CPU (arm64) using HomeBrew installed llvm as follows:

```
Homebrew clang version 14.0.6                                                                                                                    
Target: arm64-apple-darwin22.5.0                                                                                                                 
Thread model: posix                                                                                                                              
InstalledDir: /opt/homebrew/opt/llvm@14/bin
```
2023-05-28 15:08:14 +01:00
Colin Davidson 8233f49beb Revert "Fix: header directories in Unix build script" 2023-05-08 20:13:33 -07:00
Jan Prukner 19097bc5bc add redirect to /dev/null 2023-04-25 07:06:36 +02:00
Jan Prukner dbebe9e92c Fix which command check
The function have_witch failed because which is an alias in my environment.

This change makes the function work even if which command is an alias.
2023-04-24 21:47:27 +02:00
Peter Lef 8d951ab7f1 Fix: header directories in Unix build script 2023-04-16 04:16:31 -04:00
Meghan 1bf4a6f711 build_odin.sh: fix typo introduced in detection of llvm-config-11-64
appeared in https://github.com/odin-lang/Odin/commit/b22d71a74e5cd9ad6f810a2a7d155523bb7c0782
2023-04-12 12:18:11 -07:00
TryAngle b5784bc2ef Fix: Unable to find LLVM-config on Ubuntu
appends a check for llvm-config-14 on linux
2023-04-11 15:08:31 +02:00
Jeroen van Rijn b42bb5be26 Only try to parse git hash if .git is present
Closes 2451
2023-04-11 11:55:29 +02:00
kamil-beker b22d71a74e build_odin.sh - fix build on darwin arm64
Done:
- use ARCH variable properly
- refactor have_which() to use POSIX compliant command - ref
- use command instead of which for the same reason as above.
- run shfmt for consistency.
2023-04-08 08:54:53 +02:00
Colin Davidson 5f27f2dd7f move to work-stealing threadpool 2022-12-28 21:44:17 -08:00
Jeroen van Rijn d19ae37af1 Panic if LLVM > 14. 2022-10-27 02:39:18 +02:00
Jeroen van Rijn f58f922487 Detect which and complain if not found. 2022-10-25 16:45:38 +02:00
Felipe Lavratti 99894686cf Change llvm-copy-to-zip path to use real one, instead of link 2022-09-28 16:08:05 +01:00