summary refs log tree commit diff stats
path: root/plugins/perl/makefile-514.mak
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/perl/makefile-514.mak')
-rw-r--r--plugins/perl/makefile-514.mak20
1 files changed, 16 insertions, 4 deletions
diff --git a/plugins/perl/makefile-514.mak b/plugins/perl/makefile-514.mak
index 65ab59d5..0eadd344 100644
--- a/plugins/perl/makefile-514.mak
+++ b/plugins/perl/makefile-514.mak
@@ -11,20 +11,32 @@ perl.def:
 	echo xchat_plugin_deinit >> perl.def
 	echo xchat_plugin_get_info >> perl.def
 
+# MSVC only supports __inline, while GCC only supports __inline__. This is defined incorretly
+# in lib\CORE\config.h in Strawberry Perl, see #define PERL_STATIC_INLINE static __inline__
 perl.obj: perl.c
-	$(CC) $(CFLAGS) perl.c $(GLIB) /I$(PERL514PATH)\lib\CORE /I.. /DPERL_DLL=\"$(PERL514LIB).dll\"
+	$(CC) $(CFLAGS) perl.c $(GLIB) /I$(PERL514PATH)\perl\lib\CORE /I.. /DPERL_DLL=\"$(PERL514LIB).dll\" /D__inline__=__inline
+
+perl514.def:
+	gendef $(PERL514PATH)\perl\bin\perl514.dll
+
+$(PERL514LIB).lib: perl514.def
+!ifdef X64
+	lib /machine:x64 /def:perl514.def
+!else
+	lib /machine:x86 /def:perl514.def
+!endif
 
 perl.c: xchat.pm.h
 
 xchat.pm.h: lib/Xchat.pm lib/IRC.pm
 	perl.exe generate_header
 
-$(TARGET): perl.obj perl.def
-	$(LINK) /DLL /out:$(TARGET) perl.obj $(LDFLAGS) $(PERL514LIB).lib /libpath:$(PERL514PATH)\lib\CORE /delayload:$(PERL514LIB).dll $(DIRENTLIB) delayimp.lib user32.lib shell32.lib advapi32.lib /def:perl.def
+$(TARGET): perl.obj perl.def $(PERL514LIB).lib
+	$(LINK) /DLL /out:$(TARGET) perl.obj $(LDFLAGS) $(PERL514LIB).lib /delayload:$(PERL514LIB).dll $(DIRENTLIB) delayimp.lib user32.lib shell32.lib advapi32.lib /def:perl.def
 
 clean:
 	@del $(TARGET)
 	@del *.obj
-	@del perl.def
+	@del *.def
 	@del *.lib
 	@del *.exp