From 8d0efe4c2a48047680af40e5f6d639f426902e07 Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Tue, 4 Dec 2007 17:59:13 -0800 Subject: [PATCH] Darwin: Rework build system to more accurately reveal code infrastructure and facilitate future modularity. (cherry picked from commit e8399fd4d66a2b77b770c277e2fa424229a721b2) --- configure.ac | 2 +- hw/darwin/Makefile.am | 58 ++---------------- hw/darwin/quartz/Makefile.am | 13 +++- hw/darwin/quartz/X11Application.m | 3 +- .../apple/English.lproj/InfoPlist.strings | Bin .../apple/English.lproj/Localizable.strings | Bin .../apple/English.lproj/main.nib/classes.nib | 0 .../apple/English.lproj/main.nib/info.nib | 0 .../English.lproj/main.nib/keyedobjects.nib | Bin hw/darwin/{ => quartz}/apple/Info.plist | 0 hw/darwin/{ => quartz}/apple/Makefile.am | 0 hw/darwin/{ => quartz}/apple/X11.icns | Bin .../apple/X11.xcodeproj/project.pbxproj | 0 hw/darwin/{ => quartz}/apple/bundle-main.c | 0 hw/darwin/{ => quartz}/apple/launcher-main.c | 0 hw/darwin/{ => quartz}/apple/org.x.X11.plist | 0 hw/darwin/{ => quartz}/apple/server-main.c | 0 hw/darwin/quartz/xpr/Makefile.am | 54 ++++++++++++++-- hw/darwin/{ => quartz/xpr}/Xquartz.man | 0 19 files changed, 64 insertions(+), 66 deletions(-) rename hw/darwin/{ => quartz}/apple/English.lproj/InfoPlist.strings (100%) rename hw/darwin/{ => quartz}/apple/English.lproj/Localizable.strings (100%) rename hw/darwin/{ => quartz}/apple/English.lproj/main.nib/classes.nib (100%) rename hw/darwin/{ => quartz}/apple/English.lproj/main.nib/info.nib (100%) rename hw/darwin/{ => quartz}/apple/English.lproj/main.nib/keyedobjects.nib (100%) rename hw/darwin/{ => quartz}/apple/Info.plist (100%) rename hw/darwin/{ => quartz}/apple/Makefile.am (100%) rename hw/darwin/{ => quartz}/apple/X11.icns (100%) rename hw/darwin/{ => quartz}/apple/X11.xcodeproj/project.pbxproj (100%) rename hw/darwin/{ => quartz}/apple/bundle-main.c (100%) rename hw/darwin/{ => quartz}/apple/launcher-main.c (100%) rename hw/darwin/{ => quartz}/apple/org.x.X11.plist (100%) rename hw/darwin/{ => quartz}/apple/server-main.c (100%) rename hw/darwin/{ => quartz/xpr}/Xquartz.man (100%) diff --git a/configure.ac b/configure.ac index 5b21e69da..04ce6f4c7 100644 --- a/configure.ac +++ b/configure.ac @@ -2171,8 +2171,8 @@ hw/xgl/glxext/module/Makefile hw/xnest/Makefile hw/xwin/Makefile hw/darwin/Makefile -hw/darwin/apple/Makefile hw/darwin/quartz/Makefile +hw/darwin/quartz/apple/Makefile hw/darwin/quartz/xpr/Makefile hw/kdrive/Makefile hw/kdrive/ati/Makefile diff --git a/hw/darwin/Makefile.am b/hw/darwin/Makefile.am index f5b9e752d..3f29a8174 100644 --- a/hw/darwin/Makefile.am +++ b/hw/darwin/Makefile.am @@ -1,21 +1,13 @@ +noinst_LTLIBRARIES = libXdarwin.la AM_CFLAGS = $(XSERVER_CFLAGS) $(DIX_CFLAGS) AM_CPPFLAGS = \ -DINXQUARTZ \ -DUSE_NEW_CLUT \ - -DXFree86Server \ - -I$(top_srcdir)/miext/rootless + -DXFree86Server -if X11APP -X11APP_SUBDIRS = apple -endif +SUBDIRS = . quartz -SUBDIRS = quartz $(X11APP_SUBDIRS) -DIST_SUBDIRS = quartz apple - -bin_PROGRAMS = Xquartz -man1_MANS = Xquartz.man - -Xquartz_SOURCES = \ +libXdarwin_la_SOURCES = \ darwin.c \ darwinEvents.c \ darwinKeyboard.c \ @@ -23,49 +15,7 @@ Xquartz_SOURCES = \ $(top_srcdir)/fb/fbcmap_mi.c \ $(top_srcdir)/mi/miinitext.c -# We should probably add these once they're working, or are these obsolete and to be removed? -# ./quartz/cr/libcr.a -# ./quartz/fullscreen/libfullscreen.a - -Xquartz_LDADD = \ - ./quartz/libXquartz.a \ - ./quartz/xpr/libxpr.a \ - $(top_builddir)/dix/dixfonts.lo \ - $(top_builddir)/dix/libdix.la \ - $(top_builddir)/os/libos.la \ - $(top_builddir)/dix/libxpstubs.la \ - $(top_builddir)/miext/shadow/libshadow.la \ - $(top_builddir)/fb/libfb.la \ - $(top_builddir)/mi/libmi.la \ - $(top_builddir)/composite/libcomposite.la \ - $(top_builddir)/damageext/libdamageext.la \ - $(top_builddir)/miext/damage/libdamage.la \ - $(top_builddir)/xfixes/libxfixes.la \ - $(top_builddir)/miext/cw/libcw.la \ - $(top_builddir)/Xext/libXext.la \ - $(top_builddir)/xkb/libxkb.la \ - $(top_builddir)/xkb/libxkbstubs.la \ - $(top_builddir)/Xi/libXi.la \ - $(top_builddir)/dbe/libdbe.la \ - $(top_builddir)/record/librecord.la \ - $(top_builddir)/XTrap/libxtrap.la \ - $(top_builddir)/miext/rootless/librootless.la \ - $(top_builddir)/miext/rootless/safeAlpha/libsafeAlpha.la \ - $(top_builddir)/miext/rootless/accel/librlAccel.la \ - $(DARWIN_LIBS) $(XSERVER_LIBS) $(XSERVER_SYS_LIBS) -lXplugin - -Xquartz_LDFLAGS = \ - -XCClinker -Objc \ - -Wl,-u,_miDCInitialize \ - -Wl,-framework,Carbon \ - -L/System/Library/Frameworks/OpenGL.framework/Libraries -lGL \ - -Wl,-framework,OpenGL \ - -Wl,-framework,Cocoa \ - -Wl,-framework,CoreAudio \ - -Wl,-framework,IOKit - EXTRA_DIST = \ - Xquartz.man \ darwinClut8.h \ darwin.h \ darwinKeyboard.h diff --git a/hw/darwin/quartz/Makefile.am b/hw/darwin/quartz/Makefile.am index f5199dfa2..38f48d0e2 100644 --- a/hw/darwin/quartz/Makefile.am +++ b/hw/darwin/quartz/Makefile.am @@ -1,14 +1,21 @@ -noinst_LIBRARIES = libXQuartz.a +noinst_LTLIBRARIES = libXQuartz.la AM_CFLAGS = $(XSERVER_CFLAGS) $(DIX_CFLAGS) AM_OBJCFLAGS = $(XSERVER_CFLAGS) $(DIX_CFLAGS) + +# TODO: This should not pull in rootless... rootless should all be in xpr AM_CPPFLAGS = \ -I$(srcdir) -I$(srcdir)/.. \ -I$(top_srcdir)/miext/rootless -SUBDIRS = xpr +if X11APP +X11APP_SUBDIRS = apple +endif -libXQuartz_a_SOURCES = \ +SUBDIRS = . xpr $(X11APP_SUBDIRS) +DIST_SUBDIRS = xpr apple + +libXQuartz_la_SOURCES = \ X11Application.m \ X11Controller.m \ applewm.c \ diff --git a/hw/darwin/quartz/X11Application.m b/hw/darwin/quartz/X11Application.m index aef06990d..3e37dd436 100644 --- a/hw/darwin/quartz/X11Application.m +++ b/hw/darwin/quartz/X11Application.m @@ -59,8 +59,7 @@ int X11EnableKeyEquivalents = TRUE; int quartzHasRoot = FALSE, quartzEnableRootless = TRUE; extern int darwinFakeButtons, input_check_flag; -// extern Bool enable_stereo; -Bool enable_stereo; //<-- this needs to go back to being an extern once glxCGL is fixed +extern Bool enable_stereo; extern xEvent *darwinEvents; diff --git a/hw/darwin/apple/English.lproj/InfoPlist.strings b/hw/darwin/quartz/apple/English.lproj/InfoPlist.strings similarity index 100% rename from hw/darwin/apple/English.lproj/InfoPlist.strings rename to hw/darwin/quartz/apple/English.lproj/InfoPlist.strings diff --git a/hw/darwin/apple/English.lproj/Localizable.strings b/hw/darwin/quartz/apple/English.lproj/Localizable.strings similarity index 100% rename from hw/darwin/apple/English.lproj/Localizable.strings rename to hw/darwin/quartz/apple/English.lproj/Localizable.strings diff --git a/hw/darwin/apple/English.lproj/main.nib/classes.nib b/hw/darwin/quartz/apple/English.lproj/main.nib/classes.nib similarity index 100% rename from hw/darwin/apple/English.lproj/main.nib/classes.nib rename to hw/darwin/quartz/apple/English.lproj/main.nib/classes.nib diff --git a/hw/darwin/apple/English.lproj/main.nib/info.nib b/hw/darwin/quartz/apple/English.lproj/main.nib/info.nib similarity index 100% rename from hw/darwin/apple/English.lproj/main.nib/info.nib rename to hw/darwin/quartz/apple/English.lproj/main.nib/info.nib diff --git a/hw/darwin/apple/English.lproj/main.nib/keyedobjects.nib b/hw/darwin/quartz/apple/English.lproj/main.nib/keyedobjects.nib similarity index 100% rename from hw/darwin/apple/English.lproj/main.nib/keyedobjects.nib rename to hw/darwin/quartz/apple/English.lproj/main.nib/keyedobjects.nib diff --git a/hw/darwin/apple/Info.plist b/hw/darwin/quartz/apple/Info.plist similarity index 100% rename from hw/darwin/apple/Info.plist rename to hw/darwin/quartz/apple/Info.plist diff --git a/hw/darwin/apple/Makefile.am b/hw/darwin/quartz/apple/Makefile.am similarity index 100% rename from hw/darwin/apple/Makefile.am rename to hw/darwin/quartz/apple/Makefile.am diff --git a/hw/darwin/apple/X11.icns b/hw/darwin/quartz/apple/X11.icns similarity index 100% rename from hw/darwin/apple/X11.icns rename to hw/darwin/quartz/apple/X11.icns diff --git a/hw/darwin/apple/X11.xcodeproj/project.pbxproj b/hw/darwin/quartz/apple/X11.xcodeproj/project.pbxproj similarity index 100% rename from hw/darwin/apple/X11.xcodeproj/project.pbxproj rename to hw/darwin/quartz/apple/X11.xcodeproj/project.pbxproj diff --git a/hw/darwin/apple/bundle-main.c b/hw/darwin/quartz/apple/bundle-main.c similarity index 100% rename from hw/darwin/apple/bundle-main.c rename to hw/darwin/quartz/apple/bundle-main.c diff --git a/hw/darwin/apple/launcher-main.c b/hw/darwin/quartz/apple/launcher-main.c similarity index 100% rename from hw/darwin/apple/launcher-main.c rename to hw/darwin/quartz/apple/launcher-main.c diff --git a/hw/darwin/apple/org.x.X11.plist b/hw/darwin/quartz/apple/org.x.X11.plist similarity index 100% rename from hw/darwin/apple/org.x.X11.plist rename to hw/darwin/quartz/apple/org.x.X11.plist diff --git a/hw/darwin/apple/server-main.c b/hw/darwin/quartz/apple/server-main.c similarity index 100% rename from hw/darwin/apple/server-main.c rename to hw/darwin/quartz/apple/server-main.c diff --git a/hw/darwin/quartz/xpr/Makefile.am b/hw/darwin/quartz/xpr/Makefile.am index 8980ad7d3..769662276 100644 --- a/hw/darwin/quartz/xpr/Makefile.am +++ b/hw/darwin/quartz/xpr/Makefile.am @@ -1,12 +1,16 @@ -noinst_LIBRARIES = libxpr.a +bin_PROGRAMS = Xquartz + +# TODO: This man page needs sed magic and cleanup +man1_MANS = Xquartz.man + AM_CFLAGS = $(XSERVER_CFLAGS) $(DIX_CFLAGS) AM_CPPFLAGS = \ - -I$(srcdir) -I$(srcdir)/.. -I$(srcdir)/../.. \ - -I$(top_srcdir)/miext \ - -I$(top_srcdir)/miext/rootless \ - -I$(top_srcdir)/miext/rootless/safeAlpha + -I$(srcdir) -I$(srcdir)/.. -I$(srcdir)/../.. \ + -I$(top_srcdir)/miext \ + -I$(top_srcdir)/miext/rootless \ + -I$(top_srcdir)/miext/rootless/safeAlpha -libxpr_a_SOURCES = \ +Xquartz_SOURCES = \ appledri.c \ dri.c \ xprAppleWM.c \ @@ -17,7 +21,45 @@ libxpr_a_SOURCES = \ x-hook.c \ x-list.c +Xquartz_LDADD = \ + $(top_builddir)/hw/darwin/quartz/libXquartz.la \ + $(top_builddir)/hw/darwin/libXdarwin.la \ + $(top_builddir)/dix/dixfonts.lo \ + $(top_builddir)/dix/libdix.la \ + $(top_builddir)/os/libos.la \ + $(top_builddir)/dix/libxpstubs.la \ + $(top_builddir)/miext/shadow/libshadow.la \ + $(top_builddir)/fb/libfb.la \ + $(top_builddir)/mi/libmi.la \ + $(top_builddir)/composite/libcomposite.la \ + $(top_builddir)/damageext/libdamageext.la \ + $(top_builddir)/miext/damage/libdamage.la \ + $(top_builddir)/xfixes/libxfixes.la \ + $(top_builddir)/miext/cw/libcw.la \ + $(top_builddir)/Xext/libXext.la \ + $(top_builddir)/xkb/libxkb.la \ + $(top_builddir)/xkb/libxkbstubs.la \ + $(top_builddir)/Xi/libXi.la \ + $(top_builddir)/dbe/libdbe.la \ + $(top_builddir)/record/librecord.la \ + $(top_builddir)/XTrap/libxtrap.la \ + $(top_builddir)/miext/rootless/librootless.la \ + $(top_builddir)/miext/rootless/safeAlpha/libsafeAlpha.la \ + $(top_builddir)/miext/rootless/accel/librlAccel.la \ + $(DARWIN_LIBS) $(XSERVER_LIBS) $(XSERVER_SYS_LIBS) -lXplugin + +Xquartz_LDFLAGS = \ + -XCClinker -Objc \ + -Wl,-u,_miDCInitialize \ + -Wl,-framework,Carbon \ + -L/System/Library/Frameworks/OpenGL.framework/Libraries -lGL \ + -Wl,-framework,OpenGL \ + -Wl,-framework,Cocoa \ + -Wl,-framework,CoreAudio \ + -Wl,-framework,IOKit + EXTRA_DIST = \ + Xquartz.man \ dri.h \ dristruct.h \ appledri.h \ diff --git a/hw/darwin/Xquartz.man b/hw/darwin/quartz/xpr/Xquartz.man similarity index 100% rename from hw/darwin/Xquartz.man rename to hw/darwin/quartz/xpr/Xquartz.man