Skip to content

Commit 174da2f

Browse files
committed
Add minimal Makefile fallback for Windows when autotools fail
- Create create-minimal-makefile.sh to generate basic libatari800 build - Includes essential source files and minimal config.h - Fallback activates when no autotools are available in Windows CI - Bypasses autotools entirely with direct GCC compilation - Should allow Windows build to proceed even without working autotools
1 parent 79e937f commit 174da2f

File tree

2 files changed

+125
-4
lines changed

2 files changed

+125
-4
lines changed

scripts/configure-atari800.sh

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
set -e
55

6+
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
67
ATARI800_SRC_PATH="$1"
78

89
if [ -z "$ATARI800_SRC_PATH" ]; then
@@ -71,10 +72,14 @@ if [ ! -f "configure" ]; then
7172
echo "Using autoconf/aclocal manually..."
7273
aclocal && autoheader && autoconf && automake --add-missing --copy || true
7374
else
74-
echo "ERROR: No autotools available and no pre-built configure script found"
75-
echo "Available files:"
76-
ls -la
77-
exit 1
75+
echo "ERROR: No autotools available - using minimal Makefile fallback"
76+
echo "Creating minimal build system for libatari800..."
77+
"$SCRIPT_DIR/create-minimal-makefile.sh" "$ATARI800_SRC_PATH"
78+
79+
# Skip the ./configure step since we're using direct Makefile
80+
echo "Skipping configure step - using minimal Makefile approach"
81+
echo "atari800 configuration completed (minimal build)"
82+
exit 0
7883
fi
7984
else
8085
echo "ERROR: No configure.ac or configure.in found"

scripts/create-minimal-makefile.sh

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
#!/bin/bash
2+
# create-minimal-makefile.sh - Create a minimal Makefile for libatari800 when autotools fail
3+
4+
set -e
5+
6+
ATARI800_SRC_PATH="$1"
7+
8+
if [ -z "$ATARI800_SRC_PATH" ]; then
9+
echo "Error: ATARI800_SRC_PATH not provided"
10+
exit 1
11+
fi
12+
13+
cd "$ATARI800_SRC_PATH"
14+
15+
echo "Creating minimal Makefile for libatari800..."
16+
17+
# Create a basic Makefile that compiles the essential files for libatari800
18+
cat > Makefile << 'EOF'
19+
# Minimal Makefile for libatari800
20+
# Generated when autotools are not available
21+
22+
CC = gcc
23+
AR = ar
24+
CFLAGS = -O2 -DHAVE_CONFIG_H -I. -Isrc -DTARGET_LIBATARI800 -DNETSIO
25+
ARFLAGS = rcs
26+
27+
LIBATARI800_OBJS = \
28+
src/afile.o \
29+
src/antic.o \
30+
src/atari.o \
31+
src/cartridge.o \
32+
src/cpu.o \
33+
src/esc.o \
34+
src/gtia.o \
35+
src/memory.o \
36+
src/monitor.o \
37+
src/pbi.o \
38+
src/pia.o \
39+
src/pokey.o \
40+
src/sio.o \
41+
src/statesav.o \
42+
src/pbi_mio.o \
43+
src/pbi_bb.o \
44+
src/pbi_xld.o \
45+
src/libatari800/api.o \
46+
src/libatari800/main.o \
47+
src/libatari800/init.o \
48+
src/libatari800/input.o \
49+
src/libatari800/statesav.o
50+
51+
all: src/libatari800.a
52+
53+
src/libatari800.a: $(LIBATARI800_OBJS)
54+
$(AR) $(ARFLAGS) $@ $^
55+
56+
%.o: %.c
57+
$(CC) $(CFLAGS) -c $< -o $@
58+
59+
clean:
60+
rm -f $(LIBATARI800_OBJS) src/libatari800.a
61+
62+
.PHONY: all clean
63+
EOF
64+
65+
# Create a minimal config.h
66+
cat > src/config.h << 'EOF'
67+
/* Minimal config.h for libatari800 */
68+
#ifndef CONFIG_H
69+
#define CONFIG_H
70+
71+
#define PACKAGE_STRING "atari800 4.2.0"
72+
#define HAVE_STDINT_H 1
73+
#define HAVE_STDLIB_H 1
74+
#define HAVE_STRING_H 1
75+
#define HAVE_UNISTD_H 1
76+
77+
#ifdef _WIN32
78+
#define HAVE_WINDOWS_H 1
79+
#define HAVE_WINSOCK2_H 1
80+
#endif
81+
82+
#define SUPPORTS_PLATFORM_CONFIGINIT 1
83+
#define SUPPORTS_PLATFORM_CONFIGURE 1
84+
#define SUPPORTS_PLATFORM_INITIALISE 1
85+
#define SUPPORTS_PLATFORM_EXIT 1
86+
#define SUPPORTS_SOUND_REINIT 1
87+
#define SOUND_GAIN 4
88+
#define STEREO_SOUND 1
89+
#define CONSOLE_SOUND 1
90+
#define SERIO_SOUND 1
91+
#define CLIP_SOUND 1
92+
#define SYNCHRONIZED_SOUND 1
93+
#define SOUND_INTERPOLATION 1
94+
#define NONLINEAR_MIXING 1
95+
96+
/* NetSIO support */
97+
#define NETSIO 1
98+
99+
/* Screenshot support */
100+
#define HAVE_LIBPNG 1
101+
102+
/* Enable various features */
103+
#define PBI_MIO 1
104+
#define PBI_BB 1
105+
#define PBI_XLD 1
106+
#define IDE 1
107+
#define R_IO_DEVICE 1
108+
#define BUFFERED_LOG 1
109+
#define CYCLE_EXACT 1
110+
#define PAGED_ATTRIB 1
111+
112+
#endif /* CONFIG_H */
113+
EOF
114+
115+
echo "Created minimal Makefile and config.h for libatari800"
116+
echo "You can now run 'make' to build libatari800.a"

0 commit comments

Comments
 (0)