Skip to content

Commit 4cc5c9c

Browse files
Use preconfigured pyconfig.h, various makefile fixes
1 parent 0d5b096 commit 4cc5c9c

2 files changed

Lines changed: 1305 additions & 12 deletions

File tree

Makefile

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,6 @@ PYFILE := py.tgz
5050

5151
.PHONY: all clean
5252

53-
54-
all: distfPY
55-
5653
distfPY: linkPY
5754
@[ -d "$(OUTDIR)" ] || mkdir -p $(OUTDIR)
5855
@[ -d "$(OUTDIR)/include" ] || mkdir -p $(OUTDIR)/include
@@ -69,21 +66,20 @@ distfPY: linkPY
6966
touch distfPY
7067

7168
linkPY: soospatchPY
72-
cd $(PYDIR) && make LIBRARY="$(ANAME)" LDLIBRARY="$(ANAME)" $(ANAME) && cd .. && cp $(PYDIR)/$(ANAME) . && touch linkPY
69+
cd $(PYDIR) && make $(MAKEFLAGS) LIBRARY="$(ANAME)" LDLIBRARY="$(ANAME)" $(ANAME) && cd .. && cp $(PYDIR)/$(ANAME) . && touch linkPY
7370

7471
soospatchPY: compilePY
75-
cp $(PYDIR)/pyconfig.h $(PYDIR)/pyconfig.h_old
76-
cat $(PYDIR)/pyconfig.h_old | sed 's/^\([^#][^#]*#undef PY_FORMAT_LONG_LONG.*\)/\#define PY_FORMAT_LONG_LONG \"ll\" \1/' | sed 's/^\(#define socklen_t int\)/#undef socklen_t/' | sed 's/^\(#define socklen_t int\)/#undef socklen_t/' | sed 's/^\(struct servent {char*s_name;char**s_aliases;int s_port;char*s_proto;};\)/\/\/\1/' | sed 's/^\(struct protoent{char*p_name;char**p_aliases;int p_proto;};\)/\/\/\1/' | sed 's/^\([^#][^#]*#undef HAVE_FSTATVFS.*\)/\#undef HAVE_FSTATVFS \1/' | sed 's/#define HAVE_\(LSTAT\|POLL\|UNAME\|WAIT3\|WAIT4\|WAITPID\|ALARM\|DLFCN_H\|DLOPEN\|DYNAMIC_LOADING\|GETC_UNLOCKED\|GETENTROPY\|GETITIMER\|GETPWENT\|MMAP\|OPENPTY\|PAUSE\|READLINK\|SETITIMER\|SIGACTION\|SIGINTERRUPT\|TERMIOS_H\|EXECV\|FORK\|GETEGID\|GETEUID\|GETGID\|GETPPID\|GETUID\|KILL\|PIPE\|POPEN\|SYSTEM\|TTYNAME\|SYMLINK\|UTIME_H\|FDATASYNC\|TZNAME\|DECL_TZNAME\|WORKING_TZSET\).*/#undef HAVE_\1/g' | sed 's/^#define HAVE_\(STATVFS\|SYS_STATVFS_H\|FDATASYNC\|SYMLINK\|EXECV\|FORK\|GETEGID\|GETEUID\|GETGID\|GETPPID\|GETUID\|KILL\|PIPE\|POPEN\|SYSTEM\|TTYNAME\|SYMLINK\|UTIME_H\|FDATASYNC\|TZNAME\|DECL_TZNAME\|WORKING_TZSET\).*/#undef HAVE_\1/' | sed 's/^\([^#][^#]*#undef HAVE_SELECT.*\)/\#define HAVE_SELECT \1/' | sed 's/^\([^#][^#]*#undef HAVE_GETADDRINFO.*\)/struct servent {char*s_name;char**s_aliases;int s_port;char*s_proto;};\nstruct protoent{char*p_name;char**p_aliases;int p_proto;};\n#define SOCK_RAW 3\n#define SOCK_SEQPACKET 5\n#define IN_CLASSA_NSHIFT 24 \1/g' >$(PYDIR)/pyconfig.h
72+
cp python_config/pyconfig.h $(PYDIR)/pyconfig.h
7773
cp $(PYDIR)/Modules/posixmodule.c $(PYDIR)/Modules/posixmodule.c_old
78-
cat $(PYDIR)/Modules/posixmodule.c_old | sed 's/\(^[^rt]*time_t atime, mtime;.*\)/return NULL; \1/' | sed 's/\(^[^ri]*i = (int)umask(i);.*\)/return NULL; \1/' | sed 's/^\([^#][^#]*#undef HAVE_FSTATVFS.*\)/\#undef HAVE_FSTATVFS \1/' | sed 's/#define HAVE_\(EXECV\|FORK\|GETEGID\|GETEUID\|GETGID\|GETPPID\|GETUID\|KILL\|PIPE\|POPEN\|SYSTEM\|TTYNAME\|SYMLINK\|UTIME_H\|FDATASYNC\).*/#undef HAVE_\1/g' | sed 's/^#define HAVE_\(STATVFS\|SYS_STATVFS_H\|FDATASYNC\|FTIME\|SYMLINK\|EXECV\|FORK\|GETEGID\|GETEUID\|GETGID\|GETPPID\|GETUID\|KILL\|PIPE\|POPEN\|SYSTEM\|TTYNAME\|SYMLINK\|UTIME_H\|FDATASYNC\).*/#undef HAVE_\1/' >$(PYDIR)/Modules/posixmodule.c
74+
cat $(PYDIR)/Modules/posixmodule.c_old | sed 's/access\\\(path, mode\\\)/1/' | sed 's/\(^[^rt]*time_t atime, mtime;.*\)/return NULL; \1/' | sed 's/\(^[^ri]*i = (int)umask(i);.*\)/return NULL; \1/' | sed 's/^\([^#][^#]*#undef HAVE_FSTATVFS.*\)/\#undef HAVE_FSTATVFS \1/' | sed 's/#define HAVE_\(EXECV\|FORK\|GETEGID\|GETEUID\|GETGID\|GETPPID\|GETUID\|KILL\|PIPE\|POPEN\|SYSTEM\|TTYNAME\|SYMLINK\|UTIME_H\|FDATASYNC\).*/#undef HAVE_\1/g' | sed 's/^#define HAVE_\(STATVFS\|SYS_STATVFS_H\|FDATASYNC\|FTIME\|SYMLINK\|EXECV\|FORK\|GETEGID\|GETEUID\|GETGID\|GETPPID\|GETUID\|KILL\|PIPE\|POPEN\|SYSTEM\|TTYNAME\|SYMLINK\|UTIME_H\|FDATASYNC\).*/#undef HAVE_\1/' >$(PYDIR)/Modules/posixmodule.c
7975
cp $(PYDIR)/Modules/socketmodule.c $(PYDIR)/Modules/socketmodule.c_old
8076
cat $(PYDIR)/Modules/socketmodule.c_old | sed 's/ sizeof(addr->sa_data)/ 28/g' >$(PYDIR)/Modules/socketmodule.c
8177
#cp $(PYDIR)/Objects/exceptions.c $(PYDIR)/Objects/exceptions.c_old
8278
#cat $(PYDIR)/Objects/exceptions.c_old | sed 's/ESHUTDOWN/110/g' >$(PYDIR)/Objects/exceptions.c
8379
#cp $(PYDIR)/Python/pytime.c $(PYDIR)/Python/pytime.c_old
8480
#cat $(PYDIR)/Python/pytime.c_old | sed 's/CLOCK_MONOTONIC/(clockid_t)4/g' >$(PYDIR)/Python/pytime.c
8581
cp $(PYDIR)/Makefile $(PYDIR)/Makefile_old
86-
cat $(PYDIR)/Makefile_old | sed 's/^\(Python\/\$(DYNLOADFILE) \\\)/#Python\/\$(DYNLOADFILE) \\/' >$(PYDIR)/Makefile
82+
cat $(PYDIR)/Makefile_old | sed 's/Python\/$$(DYNLOADFILE) \\/\\/' >$(PYDIR)/Makefile
8783
touch soospatchPY
8884

8985
compilePY: extractedPY patchPY
@@ -96,7 +92,7 @@ patchPY:
9692
echo ac_cv_file__dev_ptc=no >>$(PYDIR)/config.site
9793
echo ac_cv_lib_dl_dlopen=no >>$(PYDIR)/config.site
9894
cp $(PYDIR)/Modules/Setup.dist $(PYDIR)/Modules/Setup.dist_old
99-
cat $(PYDIR)/Modules/Setup.dist_old | sed 's/^\([^#].* pwdmodule\.c.*\)/#\1/' | sed 's/^#\(array\|cmath\|math\|_struct\|operator\|_random\|_collections\|itertools\|strop\|unicodedata\|_io\|_csv\|_md5\|_sha\|_sha256\|_sha512\|binascii\|zlib\|select\|cStringIO\|time\|_functools\|_socket\|datetime\|_bisect\)\(.*\)/\1\2/' | sed "s#\\(zlib[^\$$]*\\)\$$(prefix)\\([^\$$]*\\)\$$(exec_prefix)\\(.*\\)#\1$(DEVKITPRO)/portlibs/armv8-a\2$(DEVKITPRO)/portlibs/armv8-a\3#" >$(PYDIR)/Modules/Setup.dist
95+
cat $(PYDIR)/Modules/Setup.dist_old | sed 's/^\([^#].* pwdmodule\.c.*\)/#\1/' | sed 's/^#\(array\|cmath\|math\|_struct\|operator\|_random\|_collections\|itertools\|strop\|unicodedata\|_io\|_csv\|_md5\|_sha\|_sha256\|_sha512\|binascii\|select\|cStringIO\|time\|_functools\|_socket\|datetime\|_bisect\)\(.*\)/\1\2/' >$(PYDIR)/Modules/Setup.dist
10096

10197
touch patchPY
10298

@@ -106,7 +102,7 @@ extractedPY: $(PYFILE)
106102
$(PYFILE):
107103
wget -O "$(PYFILE)" "$(PYLINK)" || curl -Lo "$(PYFILE)" "$(PYLINK)"
108104

109-
clean:
105+
cleanPY:
110106
@rm -rf $(PYDIR) $(PYFILE) patchPY extractedPY compilePY linkPY distfPY soospatchPY libpython*.a
111107

112108

@@ -215,12 +211,12 @@ endif
215211
#---------------------------------------------------------------------------------
216212
all: $(BUILD)
217213

218-
$(BUILD):
214+
$(BUILD): distfPY
219215
@[ -d $@ ] || mkdir -p $@
220216
@$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
221217

222218
#---------------------------------------------------------------------------------
223-
clean:
219+
clean: cleanPY
224220
@echo clean ...
225221
@rm -fr $(BUILD) $(TARGET).pfs0 $(TARGET).nso $(TARGET).nro $(TARGET).nacp $(TARGET).elf
226222

0 commit comments

Comments
 (0)