diff --git a/bazel/WindowMaker/BUILD.bazel b/bazel/WindowMaker/BUILD.bazel index 3ebfaf6d..3e29ee9d 100644 --- a/bazel/WindowMaker/BUILD.bazel +++ b/bazel/WindowMaker/BUILD.bazel @@ -17,41 +17,42 @@ genrule( ":template_files", ], outs = [ - "appearance.menu", - "appearance.menu.fy", - "appearance.menu.nl", - "appearance.menu.sr", - "menu", - "menu.bg", - "menu.fi", - "menu.fy", - "menu.hu", - "menu.ko", - "menu.nl", - "menu.ro", - "menu.sk", - "menu.sr", - "menu.zh_TW", - "plmenu", - "plmenu.bg", - "plmenu.es", - "plmenu.fi", - "plmenu.fy", - "plmenu.ja", - "plmenu.ko", - "plmenu.nl", - "plmenu.pl", - "plmenu.ro", - "plmenu.sk", - "plmenu.sr", - "plmenu.zh_CN", - "plmenu.zh_TW", - "wmmacros", + "share/WindowMaker/appearance.menu", + "share/WindowMaker/appearance.menu.fy", + "share/WindowMaker/appearance.menu.nl", + "share/WindowMaker/appearance.menu.sr", + "share/WindowMaker/menu", + "share/WindowMaker/menu.bg", + "share/WindowMaker/menu.fi", + "share/WindowMaker/menu.fy", + "share/WindowMaker/menu.hu", + "share/WindowMaker/menu.ko", + "share/WindowMaker/menu.nl", + "share/WindowMaker/menu.ro", + "share/WindowMaker/menu.sk", + "share/WindowMaker/menu.sr", + "share/WindowMaker/menu.zh_TW", + "share/WindowMaker/plmenu", + "share/WindowMaker/plmenu.bg", + "share/WindowMaker/plmenu.es", + "share/WindowMaker/plmenu.fi", + "share/WindowMaker/plmenu.fy", + "share/WindowMaker/plmenu.ja", + "share/WindowMaker/plmenu.ko", + "share/WindowMaker/plmenu.nl", + "share/WindowMaker/plmenu.pl", + "share/WindowMaker/plmenu.ro", + "share/WindowMaker/plmenu.sk", + "share/WindowMaker/plmenu.sr", + "share/WindowMaker/plmenu.zh_CN", + "share/WindowMaker/plmenu.zh_TW", + "share/WindowMaker/wmmacros", ], - cmd = """./$(location :generate_files) \ - -r '#wprefs#' '/usr/local/bin' \ - -r '#wmdatadir#' '/usr/local/share/WindowMaker' \ - -o $(RULEDIR) \ + cmd = """mkdir -p $(RULEDIR)/share/WindowMaker && + ./$(location :generate_files) \ + -r '#wprefs#' '$(INSTALL_PREFIX)/bin' \ + -r '#wmdatadir#' '$(INSTALL_PREFIX)/share/WindowMaker' \ + -o $(RULEDIR)/share/WindowMaker \ $(SRCS) """, tools = [":generate_files"], @@ -60,6 +61,12 @@ genrule( filegroup( name = "menus_nongenerated", srcs = [ + "autostart.sh", + "background.menu", + "background.menu.fy", + "background.menu.nl", + "background.menu.sr", + "exitscript.sh", "menu.ca", "menu.cz", "menu.da", @@ -88,12 +95,54 @@ filegroup( ], ) +genrule( + name = "populate_menus_nongenerated", + srcs = [":menus_nongenerated"], + outs = [ + "share/WindowMaker/autostart.sh", + "share/WindowMaker/background.menu", + "share/WindowMaker/background.menu.fy", + "share/WindowMaker/background.menu.nl", + "share/WindowMaker/background.menu.sr", + "share/WindowMaker/exitscript.sh", + "share/WindowMaker/menu.ca", + "share/WindowMaker/menu.cz", + "share/WindowMaker/menu.da", + "share/WindowMaker/menu.de", + "share/WindowMaker/menu.el", + "share/WindowMaker/menu.es", + "share/WindowMaker/menu.fr", + "share/WindowMaker/menu.gl", + "share/WindowMaker/menu.he", + "share/WindowMaker/menu.hr", + "share/WindowMaker/menu.it", + "share/WindowMaker/menu.ja", + "share/WindowMaker/menu.no", + "share/WindowMaker/menu.pl", + "share/WindowMaker/menu.pt", + "share/WindowMaker/menu.ru", + "share/WindowMaker/menu.se", + "share/WindowMaker/menu.sl", + "share/WindowMaker/menu.tr", + "share/WindowMaker/menu.zh_CN", + "share/WindowMaker/plmenu.da", + "share/WindowMaker/plmenu.de", + "share/WindowMaker/plmenu.fr", + "share/WindowMaker/plmenu.hr", + "share/WindowMaker/plmenu.it", + ], + cmd = """cp $(SRCS) $(RULEDIR)/share/WindowMaker""", +) + genrule( name = "defaults_wm_window_attributes", srcs = ["Defaults/WMWindowAttributes.in"], outs = ["Defaults/WMWindowAttributes"], + # TODO: We have temporarily eliminated the @ICONEXT@ build parameter in the + # interest of simplicity. Hard-coding png like this forces us to build in + # png support at all times instead of making it optional. cmd = """./$(location :generate_files) \ - -r '#extension#' '@ICONEXT@' \ + -r '#extension#' 'png' \ -o $(RULEDIR)/Defaults \ $(SRCS) """, @@ -105,7 +154,7 @@ genrule( srcs = ["Defaults/WindowMaker.in"], outs = ["Defaults/WindowMaker"], cmd = """./$(location :generate_files) \ - -r '#pkgdatadir#' '/usr/local/share/WindowMaker' \ + -r '#pkgdatadir#' '$(INSTALL_PREFIX)/share/WindowMaker' \ -r '#pixmapdir#' '/usr/share/pixmaps' \ -o $(RULEDIR)/Defaults \ $(SRCS) @@ -118,22 +167,36 @@ genrule( srcs = ["Defaults/WMState.in"], outs = ["Defaults/WMState"], cmd = """./$(location :generate_files) \ - -r '#wprefs#' '/usr/local/bin/WPrefs' \ + -r '#wprefs#' '$(INSTALL_PREFIX)/bin/WPrefs' \ -o $(RULEDIR)/Defaults \ $(SRCS) """, tools = [":generate_files"], ) -copy_file( +genrule( name = "defaults_wm_root_menu", - src = "plmenu", - out = "Defaults/WMRootMenu", + srcs = ["plmenu.in"], + outs = ["Defaults/WMRootMenu"], + cmd = """./$(location :generate_files) \ + -r '#wprefs#' '$(INSTALL_PREFIX)/bin' \ + -r '#wmdatadir#' '$(INSTALL_PREFIX)/share/WindowMaker' \ + -o $(RULEDIR) \ + $(SRCS) \ + && mv $(RULEDIR)/plmenu $(RULEDIR)/Defaults/WMRootMenu""", + tools = [":generate_files"], +) + +copy_file( + name = "defaults_wm_global", + src = "Defaults/WMGLOBAL.in", + out = "Defaults/WMGLOBAL", ) filegroup( name = "defaults", srcs = [ + ":defaults_wm_global", ":defaults_window_maker", ":defaults_wm_root_menu", ":defaults_wm_state", @@ -144,9 +207,173 @@ filegroup( genrule( name = "iconsets", srcs = [":defaults_wm_window_attributes"], - outs = ["Iconsets/Default.iconset"], + outs = ["share/WindowMaker/IconSets/Default.iconset"], cmd = """echo '{' > $(@) && \ - grep Icon $(location :defaults_wm_window_attributes) >> $(@) && \ - echo '}' >> $(@) + grep Icon $(location :defaults_wm_window_attributes) >> $(@) && \ + echo '}' >> $(@) """, ) + +copy_file( + name = "backgrounds", + src = "Backgrounds/BlueImage.jpeg", + out = "share/WindowMaker/Backgrounds/BlueImage.jpeg", +) + +genrule( + name = "icons", + srcs = glob([ + "Icons/*.tiff", + "Icons/*.xpm", + "Icons/*.png", + ]), + outs = [ + "share/WindowMaker/Icons/BitchX.tiff", + "share/WindowMaker/Icons/BitchX.xpm", + "share/WindowMaker/Icons/clip.tiff", + "share/WindowMaker/Icons/clip.xpm", + "share/WindowMaker/Icons/defaultAppIcon.tiff", + "share/WindowMaker/Icons/defaultAppIcon.xpm", + "share/WindowMaker/Icons/defaultterm.tiff", + "share/WindowMaker/Icons/defaultterm.xpm", + "share/WindowMaker/Icons/Drawer.tiff", + "share/WindowMaker/Icons/Drawer.xpm", + "share/WindowMaker/Icons/draw.tiff", + "share/WindowMaker/Icons/draw.xpm", + "share/WindowMaker/Icons/Ear.png", + "share/WindowMaker/Icons/Ftp.png", + "share/WindowMaker/Icons/GNUstep3D.tiff", + "share/WindowMaker/Icons/GNUstep3D.xpm", + "share/WindowMaker/Icons/GNUstepGlow.tiff", + "share/WindowMaker/Icons/GNUstepGlow.xpm", + "share/WindowMaker/Icons/GNUstep.tiff", + "share/WindowMaker/Icons/GNUstep.xpm", + "share/WindowMaker/Icons/GNUterm.tiff", + "share/WindowMaker/Icons/GNUterm.xpm", + "share/WindowMaker/Icons/GreenWilber.png", + "share/WindowMaker/Icons/ICQ.png", + "share/WindowMaker/Icons/Jabber.png", + "share/WindowMaker/Icons/linuxterm.tiff", + "share/WindowMaker/Icons/linuxterm.xpm", + "share/WindowMaker/Icons/Magnify.tiff", + "share/WindowMaker/Icons/Magnify.xpm", + "share/WindowMaker/Icons/mixer.tiff", + "share/WindowMaker/Icons/mixer.xpm", + "share/WindowMaker/Icons/Mouth.png", + "share/WindowMaker/Icons/Mozilla.png", + "share/WindowMaker/Icons/notepad.tiff", + "share/WindowMaker/Icons/notepad.xpm", + "share/WindowMaker/Icons/pdf.tiff", + "share/WindowMaker/Icons/pdf.xpm", + "share/WindowMaker/Icons/Pencil.png", + "share/WindowMaker/Icons/Pen.png", + "share/WindowMaker/Icons/ps.tiff", + "share/WindowMaker/Icons/ps.xpm", + "share/WindowMaker/Icons/Real.png", + "share/WindowMaker/Icons/real.tiff", + "share/WindowMaker/Icons/real.xpm", + "share/WindowMaker/Icons/sgiterm.tiff", + "share/WindowMaker/Icons/sgiterm.xpm", + "share/WindowMaker/Icons/Shell.png", + "share/WindowMaker/Icons/Speaker.png", + "share/WindowMaker/Icons/staroffice2.tiff", + "share/WindowMaker/Icons/staroffice2.xpm", + "share/WindowMaker/Icons/TerminalGNUstep.tiff", + "share/WindowMaker/Icons/TerminalGNUstep.xpm", + "share/WindowMaker/Icons/TerminalLinux.tiff", + "share/WindowMaker/Icons/TerminalLinux.xpm", + "share/WindowMaker/Icons/Terminal.tiff", + "share/WindowMaker/Icons/Terminal.xpm", + "share/WindowMaker/Icons/timer.tiff", + "share/WindowMaker/Icons/timer.xpm", + "share/WindowMaker/Icons/wilber.tiff", + "share/WindowMaker/Icons/wilber.xpm", + "share/WindowMaker/Icons/Wine.png", + "share/WindowMaker/Icons/write.tiff", + "share/WindowMaker/Icons/write.xpm", + "share/WindowMaker/Icons/XChat.png", + "share/WindowMaker/Icons/xdvi.tiff", + "share/WindowMaker/Icons/xdvi.xpm", + "share/WindowMaker/Icons/xv.tiff", + "share/WindowMaker/Icons/xv.xpm", + ], + cmd = """mkdir -p $(RULEDIR)/share/WindowMaker/Icons && \ + cp $(SRCS) $(RULEDIR)/share/WindowMaker/Icons""", +) + +genrule( + name = "pixmaps", + srcs = glob([ + "Pixmaps/*.tiff", + "Pixmaps/*.xpm", + "Pixmaps/*.png", + ]), + outs = [ + "share/WindowMaker/Pixmaps/swback2.png", + "share/WindowMaker/Pixmaps/swback.png", + "share/WindowMaker/Pixmaps/swtile.png", + "share/WindowMaker/Pixmaps/tile.tiff", + "share/WindowMaker/Pixmaps/tile.xpm", + ], + cmd = """mkdir -p $(RULEDIR)/share/WindowMaker/Pixmaps && \ + cp $(SRCS) $(RULEDIR)/share/WindowMaker/Pixmaps""", +) + +genrule( + name = "styles", + srcs = glob(["Styles/*.style"]), + outs = [ + "share/WindowMaker/Styles/Adwaita.style", + "share/WindowMaker/Styles/Autumn.style", + "share/WindowMaker/Styles/Black.style", + "share/WindowMaker/Styles/BlackTexture.style", + "share/WindowMaker/Styles/BlueDawn.style", + "share/WindowMaker/Styles/BlueishGreen.style", + "share/WindowMaker/Styles/Blue.style", + "share/WindowMaker/Styles/Brownish.style", + "share/WindowMaker/Styles/Brown.style", + "share/WindowMaker/Styles/Chumbo.style", + "share/WindowMaker/Styles/Copper.style", + "share/WindowMaker/Styles/DarkBlue.style", + "share/WindowMaker/Styles/DarkRed.style", + "share/WindowMaker/Styles/Emerald.style", + "share/WindowMaker/Styles/Fire.style", + "share/WindowMaker/Styles/Food.style", + "share/WindowMaker/Styles/Golden.style", + "share/WindowMaker/Styles/Green.style", + "share/WindowMaker/Styles/GreyBlue.style", + "share/WindowMaker/Styles/Gtk.style", + "share/WindowMaker/Styles/Interlace.style", + "share/WindowMaker/Styles/IRednBlue.style", + "share/WindowMaker/Styles/LightBlue.style", + "share/WindowMaker/Styles/NewBlue.style", + "share/WindowMaker/Styles/NightSky.style", + "share/WindowMaker/Styles/Pastel.style", + "share/WindowMaker/Styles/Pink.style", + "share/WindowMaker/Styles/Pumpkin.style", + "share/WindowMaker/Styles/Purple.style", + "share/WindowMaker/Styles/Purplish.style", + "share/WindowMaker/Styles/RednBlue.style", + "share/WindowMaker/Styles/Red.style", + "share/WindowMaker/Styles/Spring.style", + "share/WindowMaker/Styles/Summer.style", + "share/WindowMaker/Styles/Traditional.style", + "share/WindowMaker/Styles/VioletBlue.style", + ], + cmd = """mkdir -p $(RULEDIR)/share/WindowMaker/Styles && \ + cp $(SRCS) $(RULEDIR)/share/WindowMaker/Styles""", +) + +genrule( + name = "themes", + srcs = glob(["Themes/*.style"]), + outs = [ + "share/WindowMaker/Themes/Blau.style", + "share/WindowMaker/Themes/Default.style", + "share/WindowMaker/Themes/OpenStep.style", + "share/WindowMaker/Themes/Pastel.style", + "share/WindowMaker/Themes/SteelBlueSilk.style", + ], + cmd = """mkdir -p $(RULEDIR)/share/WindowMaker/Themes && \ + cp $(SRCS) $(RULEDIR)/share/WindowMaker/Themes""", +) diff --git a/bazel/WindowMaker/Defaults/WMGLOBAL b/bazel/WindowMaker/Defaults/WMGLOBAL.in similarity index 100% rename from bazel/WindowMaker/Defaults/WMGLOBAL rename to bazel/WindowMaker/Defaults/WMGLOBAL.in diff --git a/bazel/install.sh b/bazel/install.sh new file mode 100644 index 00000000..1331e117 --- /dev/null +++ b/bazel/install.sh @@ -0,0 +1,47 @@ +#!/bin/sh + +### Run this like: sh install.sh +### +### For example: +### sh install.sh /usr/local +### sh install.sh /home/testuser + +set -e + +if [ x"$1" = "x" ]; then + echo "Error: install target not specified" + exit 1 +fi + +if [ ! -d "$1"/bin ]; then + echo "Error: $1/bin does not exist" + exit 1 +fi + +if [ ! -d "$1"/share ]; then + echo "Error: $1/share does not exist" + exit 1 +fi + +if [ ! -d "$1"/etc ]; then + echo "Error: $1/etc does not exist" + exit 1 +fi + +umask 003 + +bazel-7.4.1 build -c dbg --define=INSTALL_PREFIX="$1" //wmaker //WindowMaker:all + +OUTDIR="$(dirname "$0")"/bazel-out/k8-dbg/bin + +cp "$OUTDIR"/wmaker/wmaker "$1"/bin/wmaker + +rm -rf "$1"/etc/GNUstep/Defaults +mkdir -p "$1"/etc/GNUstep/Defaults +tar cf - -C "$OUTDIR"/WindowMaker Defaults \ + | tar xf - -C "$1"/etc/GNUstep + +rm -rf "$1"/share/WindowMaker +mkdir -p "$1"/share/WindowMaker +tar cf - -C "$OUTDIR"/WindowMaker/share WindowMaker \ + | tar xf - -C "$1"/share