pkgsrc/x11/xview-config/patches/patch-ad-buildsystem-modernize
2011-08-11 05:50:37 +00:00

121 lines
4.4 KiB
Text

$NetBSD: patch-ad-buildsystem-modernize,v 1.1 2011/08/11 05:50:37 dholland Exp $
Assorted minor modernizations to the build system.
- Install all icons and other images by default. By modern standards
they're small.
- Make the default compiler flag for PIC -fPIC, which will work without
further fuss in the largest number of environments.
- Support ELF as well as legacy a.out linking, using $(CC) instead of
$(LD) to link in order to get the proper startup files for a library.
- Write suffix rules that work properly with current make dialects.
- Some adjoining cosmetic fixups.
--- XView.cf Thu Aug 11 01:06:50 2011 -0400
+++ XView.cf Thu Aug 11 01:19:01 2011 -0400
@@ -259,7 +259,7 @@
* following variable to YES.
*/
#ifndef InstallAllImages
-#define InstallAllImages NO
+#define InstallAllImages YES
#endif
/*
* If you do not already have the textsw extras menu installed in
@@ -358,9 +358,11 @@
* PositionIndependentCodeFlag should be defined as -K PIC
* If you are running 4.x, then PositionIndependentCodeFlag should
* be defined as -PIC
+ * For gcc and most gcc-like modern compilers this should be -fPIC,
+ * so that'll be the default.
*/
#ifndef PositionIndependentCodeFlag
-#define PositionIndependentCodeFlag -PIC
+#define PositionIndependentCodeFlag -fPIC
#endif
/*
--- XView.rules Thu Aug 11 01:06:50 2011 -0400
+++ XView.rules Thu Aug 11 01:19:01 2011 -0400
@@ -141,6 +141,23 @@
* included in both the .so and the .sa parts of the library.
*/
#ifndef SubdirBuildNormalSharedLibraryTarget
+#if UseElfFormat == YES
+#define SubdirBuildNormalSharedLibraryTarget(libname,rev,solist,sodir) @@\
+AllTarget(lib/**/libname.so.rev) @@\
+ @@\
+lib/**/libname.so.rev:: solist @@\
+ $(RM) $@~ sodir/lib/**/libname.so.xs.o @@\
+ @if [ -f xstrings ]; then \ @@\
+ $(RM) strings; $(CP) xstrings strings; fi @@\
+ (cd sodir; $(CC) -o ../$@~ $(SHLIBLDFLAGS) ?*.o) @@\
+ -@if [ -f strings~ ]; then $(RM) strings~; else exit 0; fi @@\
+ $(RM) $@ @@\
+ $(MV) $@~ $@ @@\
+ @@\
+clean:: @@\
+ $(RM) lib/**/libname.so.rev sodir/?*.o strings*
+
+#else
#define SubdirBuildNormalSharedLibraryTarget(libname,rev,solist,sodir) @@\
AllTarget(lib/**/libname.so.rev) @@\
@@\
@@ -156,6 +173,7 @@
clean:: @@\
$(RM) lib/**/libname.so.rev sodir/?*.o strings*
+#endif
#endif /* SubdirBuildNormalSharedLibraryTarget */
/*
@@ -245,8 +263,9 @@
@@\
.c.o: @@\
$(RM) $@ shared/$@ @@\
- $(CC) $(PIC) $(SHAREDCODEDEF) $(SHLIBDEF) $(CFLAGS) $(STRCONST) -c $*.c \ @@\
- -o shared/$*.o @@\
+ $(CC) -c $(PIC) $(SHAREDCODEDEF) \ @@\
+ $(SHLIBDEF) $(CFLAGS) $(STRCONST) $*.c @@\
+ $(CP) $*.o shared/$*.o @@\
@@\
clean:: @@\
$(RM) strings* @@\
@@ -256,24 +275,26 @@
#endif /* SubdirSharedLibraryObjectRule */
/*
- * SubdirSharedAndDebuggedLibraryObjectRule - generate make rules to build shared,
- * debuggable, and "normal" object files.
+ * SubdirSharedAndDebuggedLibraryObjectRule - generate make rules to
+ * build shared, debuggable, and "normal" object files.
*/
#ifndef SubdirSharedAndDebuggedLibraryObjectRule
-#define SubdirSharedAndDebuggedLibraryObjectRule() @@\
+#define SubdirSharedAndDebuggedLibraryObjectRule() @@\
all:: @@\
-@if [ ! -d shared ]; then mkdir shared; else exit 0; fi @@\
-@if [ ! -f $(XSTR_STRINGS_FILE) ]; then \ @@\
touch $(XSTR_STRINGS_FILE); else exit 0; fi @@\
- -@if [ -f strings ]; then $(RM) strings; else exit 0; fi @@\
- $(LN) $(XSTR_STRINGS_FILE) strings @@\
+ -@if [ ! -f strings ]; then \ @@\
+ $(LN) $(XSTR_STRINGS_FILE) strings; else exit 0; fi @@\
-@if [ ! -d debugger ]; then mkdir debugger; else exit 0; fi @@\
@@\
.c.o: @@\
$(RM) $@ shared/$@ debugger/$@ @@\
- $(CC) -g -c $(SHLIBDEF) $(CFLAGS) $(STRCONST) $*.c @@\
+ $(CC) -c -g $(SHLIBDEF) $(CFLAGS) $(STRCONST) $*.c @@\
$(CP) $*.o debugger/$*.o @@\
- $(CC) -c $(PIC) $(SHAREDCODEDEF) $(SHLIBDEF) $(CFLAGS) $(STRCONST) $*.c @@\
+ $(CC) -c $(PIC) $(SHAREDCODEDEF) \ @@\
+ $(SHLIBDEF) $(CFLAGS) $(STRCONST) $*.c @@\
+ $(CP) $*.o shared/$*.o @@\
@@\
clean:: @@\
$(RM) strings* @@\