From owner-freebsd-hackers Wed Jun 19 10:37:17 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id KAA03764 for hackers-outgoing; Wed, 19 Jun 1996 10:37:17 -0700 (PDT) Received: from gandalf.me.ksu.edu (root@gandalf.me.ksu.edu [129.130.41.86]) by freefall.freebsd.org (8.7.5/8.7.3) with ESMTP id KAA03757 for ; Wed, 19 Jun 1996 10:37:11 -0700 (PDT) Received: from max.ami.ksu.edu (joed@max.ami.ksu.edu [129.130.21.2]) by gandalf.me.ksu.edu (8.7.3/8.7.3) with ESMTP id MAA02694 for ; Wed, 19 Jun 1996 12:37:06 -0500 (CDT) Received: (from joed@localhost) by max.ami.ksu.edu (8.6.10/8.6.9) id MAA08616 for hackers@freebsd.org; Wed, 19 Jun 1996 12:37:05 -0500 Date: Wed, 19 Jun 1996 12:37:05 -0500 From: Joe Diehl Message-Id: <199606191737.MAA08616@max.ami.ksu.edu> To: hackers@freebsd.org Subject: Compiling Motif-2.0 (install notes) Sender: owner-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk Howdy all, Because of the responce to my earlier posting asking if anyone is interested in having my install notes for Motif-2.0 posted anywhere, I thought I might just mail them here for all to see and to get in the search archives. Since this is being mailed to freebsd-hackers, and therefore will end up in the search archives, let me make a note right here for any person searching down the road: Motif-2.0 is a commerical product. You must have your own license and source code... If you do not have a license already please look into purchasing a precompile version of Motif with a license. At the time of this writting there is a link to the X Inside company from the FreeBSD home page... This is one of the available sources for Motif for FreeBSD. Well okie, here is what I have for install notes: 1) Fetch and install new version of flex. In this case I was running 2.5.3 for Motif to be happy. The version of flex that comes with FreeBSD-2.1.0 will not work while trying to build Motif-2.0 2) joed@marvin:/usr/local/build/motif-2.0% imake -DUseInstalled -Iconfig 3) joed@marvin:/usr/local/build/motif-2.0% make includes 4) Okay, I'm cheating a little bit here, but what can I say.. I'm lazy :/usr/local/build/motif-2.0/X11% ln -s /usr/X11R6/include/X11/xpm.h xpm.h :/usr/local/build/motif-2.0/lib% ln -s /usr/X11R6/lib/libXpm.a libXpm.a 5) joed@marvin:/usr/local/build/motif-2.0% make depend Well this died in lib/Xm with out of files errors. Impatiently I just left it be and went on... 6) joed@marvin:/usr/local/build/motif-2.0% make Problem 1: ---------- make dies very quickly with a conflict in /usr/include/stdio.h... Commented out the following line in /usr/include/stdio.h: /* extern __const char *__const sys_errlist[]; */ Note that the real solution to this is to add the following switch while compiling motif and any motif apps: -DMOTIFSRC. Like I've mentioned, I'm lazy. Problem 2: ---------- making all in ./demos/programs/workspace... ... cc -c -O -I. -I../../lib -I../../.././X11 -I../../.././X11 -I../../.././X11 -DNO_MESSAGE_CATALOG command_ui.c command_ui.c: In function `SendIncludeCommand': command_ui.c:386: parse error before `=' command_ui.c:398: parse error before `=' command_ui.c:424: parse error before `inline' *** Error code 1 Stop. Changed all referances of the variable 'inline' to 'inline2'. Okay, cheesy change but it gets the job done... :) 20-25 hours later (only 8mb of ram is a killer :) -- (7) make install DESTDIR=/usr/local/lic/motif-2.0 borked in ./lib/Xm fix: touch ./lib/Xm/WorldP.h (8) make install.man DESTDIR=/usr/local/lic/motif-2.0 borked in ./demos/programs/popups Excerpt from the Makefile: install.man:: autopopups.man @if [ -d $(DESTDIR) $(MANDIR) ]; then set +x; \ else (set -x; $(MKDIRHIER) $(DESTDIR) $(MANDIR)); fi $(INSTALL) -c $(INSTMANFLAGS) autopopups.man $(DESTDIR) $(MANDIR)/autopo pups.$(MANSUFFIX) There should not be a space between DESTDIR and MANDIR.. fixit.. make it go (9) rearranged the install directory to resemble the FreeBSD tree (10) made backups of /usr/X11R6/lib/X11/config and /usr/X11R6/bin/imake evil Motif is going to try and fiddle with these :) (11) root@marvin:/usr/local/install# installit -t /usr/X11R6 motif-2.0/ this will simply creat symlinks from the /usr/local/lic/motif-2.0 tree to the /usr/X11R6 tree... verra nice for deinstallations... (12) Successfully fired up two of the demos (todo and draw)... Killed Filemanager after it had been cranking for 3 minutes without giving me a window. 8mb just doesn't cut it for motif :) (13) Hmm... xmkmf is very broken.. I can't compile a thing using xmkmf.. need to fix (14) In the mean time, my lazy self decided to compile a couple of apps to verify that motif works. This of course required following the README file's directions for installing without imake. Both xinvest and xmmix compiled... Though xinvest had a couple problems so I removed it. Since then I've compiled and run a few other motif apps... Motif appears to work quite well. (15) Okie.. finally broke down to fixing the /usr/X11R6/lib/X11/config directory when I wanted to install the xmcd port. Or some motif port: This patch to the directory should take care of most of the files... But not the Motif* files... Let's see if I can remember now... I believe a minor modification or two was needed in one of the Motif* files... And I never did anything with the project.tmpl file. This should get you a semi-working config directory, but may still take a bit of dinking yet to make it work: diff -rc config.orig/FreeBSD.cf config/FreeBSD.cf *** config.orig/FreeBSD.cf Thu Jun 6 20:20:15 1996 --- config/FreeBSD.cf Sat Jun 8 18:12:21 1996 *************** *** 8,13 **** --- 8,15 ---- #define OSMinorVersion 1 #define OSTeenyVersion 0 + #define MotifBC YES + #define HasGcc YES #define HasGcc2 YES #define HasCplusplus YES Only in config: Motif.rules Only in config: Motif.tmpl diff -rc config.orig/bsdLib.rules config/bsdLib.rules *** config.orig/bsdLib.rules Thu Jun 6 20:20:02 1996 --- config/bsdLib.rules Sat Jun 8 18:12:18 1996 *************** *** 29,34 **** --- 29,35 ---- #define PositionIndependentCFlags -fpic #endif + /* * InstallSharedLibrary - generate rules to install the shared library. */ *************** *** 94,96 **** --- 95,98 ---- Concat(varname,LIB) = LoaderLibPrefix Concat(-l,libname) Concat3(Shared,libname,Reqs) @@\ LintLibReferences(varname,libname,libsource) #endif + diff -rc config.orig/bsdLib.tmpl config/bsdLib.tmpl *** config.orig/bsdLib.tmpl Thu Jun 6 20:20:10 1996 --- config/bsdLib.tmpl Sat Jun 8 18:12:19 1996 *************** *** 14,16 **** --- 14,17 ---- #ifndef SharedXmuReqs #define SharedXmuReqs $(LDPRELIB) $(XTOOLONLYLIB) $(XONLYLIB) #endif + diff -rc config.orig/site.def config/site.def *** config.orig/site.def Thu Jun 6 20:20:15 1996 --- config/site.def Sat Jun 8 18:12:20 1996 *************** *** 50,55 **** --- 50,61 ---- #endif */ + #define MotifMajorVersion 2 + #define MotifMinorVersion 0 + #define MotifUpdateLevel 0 + #define LocalTmplFile + #define LocalRulesFile + #endif /* BeforeVendorCF */ #ifdef AfterVendorCF 16) Hmm... Finally, make sure that after installing Motif, you are still using the imake that came with FreeBSD... The motif imake program will do nasty things. Cheers and good luck hope this is a help to you. --- Joe Diehl Network and Systems Administrator KSU College of Engineering