diff options
| author | peter <peter@pmikkelsen.com> | 2026-10-08 19:22:16 +0000 |
|---|---|---|
| committer | peter <peter@pmikkelsen.com> | 2026-10-08 19:22:16 +0000 |
| commit | 58afb03f7082b355f2c317c9acb60e48a86d6eec (patch) | |
| tree | 6ddc5c2e5c1e126bd89650bbe47856dc3ae9fe73 /src/include | |
| parent | 0a81016dabf9e463d4d21853115c81b9dba8059d (diff) | |
Start working on support for compiling on windows using msys2.
FossilOrigin-Name: d0b8a592f04b7c438aff01694ef262cef67b71da7625bf7415c1e61ff22d8a63
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/Makefile.am | 8 | ||||
| -rw-r--r-- | src/include/os.h | 54 | ||||
| -rw-r--r-- | src/include/os/windows.h | 25 | ||||
| -rw-r--r-- | src/include/os/windows_main.h | 20 | ||||
| -rw-r--r-- | src/include/os_main.h | 31 |
5 files changed, 137 insertions, 1 deletions
diff --git a/src/include/Makefile.am b/src/include/Makefile.am index 3f082fb..99326ea 100644 --- a/src/include/Makefile.am +++ b/src/include/Makefile.am @@ -1,2 +1,8 @@ +OS_HS = \ + src/include/os/windows.h + include_HEADERS += src/include/aplwc.h -noinst_HEADERS += src/include/aplwc_macros.h +noinst_HEADERS += src/include/aplwc_macros.h src/include/os.h $(OS_HS) + +src/include/os.h: $(OS_HS) + diff --git a/src/include/os.h b/src/include/os.h new file mode 100644 index 0000000..a56b79d --- /dev/null +++ b/src/include/os.h @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2026 Peter Mikkelsen <petermikkelsen10@gmail.com> + * + * This file is part of aplwc. + * + * Aplwc is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Aplwc is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with aplwc. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifndef OS_H +#define OS_H + +#include <config.h> + +enum OS { + OS_Windows, + OS_Unknown +}; + +#if BUILD_TARGET + +#ifdef BUILD_OS_WINDOWS +#define OS OS_Windows +#else +#error "Unexpected build os" +#endif + +#else + +#ifdef HOST_OS_WINDOWS +#define OS OS_Windows +#else +#error "Unexpected host os" +#endif + +#endif + +#if OS == OS_Windows +#include <os/windows.h> +#endif + +int getline(char **, size_t *, void *); + +#endif /* OS_H */ diff --git a/src/include/os/windows.h b/src/include/os/windows.h new file mode 100644 index 0000000..7d12e12 --- /dev/null +++ b/src/include/os/windows.h @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2026 Peter Mikkelsen <petermikkelsen10@gmail.com> + * + * This file is part of aplwc. + * + * Aplwc is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Aplwc is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with aplwc. If not, see <https://www.gnu.org/licenses/>. + */ + +#include <stddef.h> +#include <stdio.h> +#include <assert.h> +#include <setjmp.h> +#include <stdlib.h> +#include <string.h> diff --git a/src/include/os/windows_main.h b/src/include/os/windows_main.h new file mode 100644 index 0000000..fad4151 --- /dev/null +++ b/src/include/os/windows_main.h @@ -0,0 +1,20 @@ +/* + * Copyright (C) 2026 Peter Mikkelsen <petermikkelsen10@gmail.com> + * + * This file is part of aplwc. + * + * Aplwc is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Aplwc is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with aplwc. If not, see <https://www.gnu.org/licenses/>. + */ + +int main(int, char **); diff --git a/src/include/os_main.h b/src/include/os_main.h new file mode 100644 index 0000000..1aa3d55 --- /dev/null +++ b/src/include/os_main.h @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2026 Peter Mikkelsen <petermikkelsen10@gmail.com> + * + * This file is part of aplwc. + * + * Aplwc is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Aplwc is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with aplwc. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifndef OS_MAIN_H +#define OS_MAIN_H + +#if OS == OS_Windows +#include <os/windows_main.h> +#else +#error "Did you include <os.h> before including <os_main.h>?" /* There may also be a missing case */ +#endif + +int portable_main(int, char **); + +#endif /* OS_MAIN_H */ |