@@ -70,6 +70,7 @@ def getenv(name, default):
70
70
#####################
71
71
IS_WINDOWS = False
72
72
IS_LINUX = False
73
+ IS_HURD = False
73
74
IS_OSX = False
74
75
IS_FREEBSD = False
75
76
IS_NETBSD = False
@@ -145,6 +146,9 @@ def is_windows():
145
146
def is_linux ():
146
147
return IS_LINUX
147
148
149
+ def is_hurd ():
150
+ return IS_HURD
151
+
148
152
def is_freebsd ():
149
153
return IS_FREEBSD
150
154
@@ -591,6 +595,8 @@ def check_eol():
591
595
PREFIX = "/usr/local"
592
596
elif os .uname ()[0 ] == 'Linux' :
593
597
IS_LINUX = True
598
+ elif os .uname ()[0 ] == 'GNU' :
599
+ IS_HURD = True
594
600
elif os .uname ()[0 ] == 'FreeBSD' :
595
601
IS_FREEBSD = True
596
602
elif os .uname ()[0 ] == 'NetBSD' :
@@ -1258,7 +1264,7 @@ def get_so_ext():
1258
1264
sysname = os .uname ()[0 ]
1259
1265
if sysname == 'Darwin' :
1260
1266
return 'dylib'
1261
- elif sysname == 'Linux' or sysname == 'FreeBSD' or sysname == 'NetBSD' or sysname == 'OpenBSD' :
1267
+ elif sysname == 'Linux' or sysname == 'GNU' or sysname == ' FreeBSD' or sysname == 'NetBSD' or sysname == 'OpenBSD' :
1262
1268
return 'so'
1263
1269
elif sysname == 'CYGWIN' or sysname .startswith ('MSYS_NT' ) or sysname .startswith ('MINGW' ):
1264
1270
return 'dll'
@@ -1825,6 +1831,8 @@ def mk_makefile(self, out):
1825
1831
t = t .replace ('PLATFORM' , 'darwin' )
1826
1832
elif IS_LINUX :
1827
1833
t = t .replace ('PLATFORM' , 'linux' )
1834
+ elif IS_GNU :
1835
+ t = t .replace ('PLATFORM' , 'hurd' )
1828
1836
elif IS_FREEBSD :
1829
1837
t = t .replace ('PLATFORM' , 'freebsd' )
1830
1838
elif IS_NETBSD :
@@ -2553,6 +2561,11 @@ def mk_config():
2553
2561
SO_EXT = '.so'
2554
2562
SLIBFLAGS = '-shared'
2555
2563
SLIBEXTRAFLAGS = '%s -Wl,-soname,libz3.so' % SLIBEXTRAFLAGS
2564
+ elif sysname == 'GNU' :
2565
+ CXXFLAGS = '%s -D_HURD_' % CXXFLAGS
2566
+ OS_DEFINES = '-D_HURD_'
2567
+ SO_EXT = '.so'
2568
+ SLIBFLAGS = '-shared'
2556
2569
elif sysname == 'FreeBSD' :
2557
2570
CXXFLAGS = '%s -D_FREEBSD_' % CXXFLAGS
2558
2571
OS_DEFINES = '-D_FREEBSD_'
0 commit comments