[GRASS-dev] mac error in GRASS 7 compiling

Here is the mac error from compiling GRASS 7. Everything else compiled fine except for nviz_cmd of course.

The error says that it's missing an Info.plist in ./macosx/app.

I've kept a build.log as you suggested Glynn. So if you you need me to send more, let me know.

Michael

======== make output ========

VERSION_NUMBER=7.0.svn /Users/cmbarton/grass_dev/grass7_src/tools/g.html2man/g.html2man.py /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/docs/html/variables.html /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/man/man1/variables.1
VERSION_NUMBER=7.0.svn /Users/cmbarton/grass_dev/grass7_src/tools/g.html2man/g.html2man.py /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/docs/html/vector.html /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/man/man1/vector.1
make[2]: `/Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/man/man1/vectorintro.1' is up to date.
VERSION_NUMBER=7.0.svn /Users/cmbarton/grass_dev/grass7_src/tools/g.html2man/g.html2man.py /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/docs/html/wxGUI.Attribute_Table_Manager.html /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/man/man1/wxGUI.Attribute_Table_Manager.1
VERSION_NUMBER=7.0.svn /Users/cmbarton/grass_dev/grass7_src/tools/g.html2man/g.html2man.py /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/docs/html/wxGUI.Nviz.html /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/man/man1/wxGUI.Nviz.1
VERSION_NUMBER=7.0.svn /Users/cmbarton/grass_dev/grass7_src/tools/g.html2man/g.html2man.py /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/docs/html/wxGUI.Vector_Digitizing_Tool.html /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/man/man1/wxGUI.Vector_Digitizing_Tool.1
VERSION_NUMBER=7.0.svn /Users/cmbarton/grass_dev/grass7_src/tools/g.html2man/g.html2man.py /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/docs/html/wxGUI.html /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/man/man1/wxGUI.1
make[2]: `/Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/man/man1/xganim.1' is up to date.
make[2]: `/Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/man/man1/ximgview.1' is up to date.
gcc -g -Wall -pedantic -Werror-implicit-function-declaration -fno-common -o at_exit_funcs.o -c at_exit_funcs.c
gcc -g -Wall -pedantic -Werror-implicit-function-declaration -fno-common -o error.o -c error.c
gcc -g -Wall -pedantic -Werror-implicit-function-declaration -fno-common -o tools.o -c tools.c
gcc -g -Wall -pedantic -Werror-implicit-function-declaration -fno-common -o reg_deps.o -c reg_deps.c
gcc -g -Wall -pedantic -Werror-implicit-function-declaration -fno-common -o reg_entries.o -c reg_entries.c
gcc -g -Wall -pedantic -Werror-implicit-function-declaration -fno-common -o reg_html.o -c reg_html.c
gcc -g -Wall -pedantic -Werror-implicit-function-declaration -fno-common -o actions.o -c actions.c
gcc -g -Wall -pedantic -Werror-implicit-function-declaration -fno-common -o main.o -c main.c
gcc at_exit_funcs.o error.o tools.o reg_deps.o reg_entries.o reg_html.o actions.o main.o -o gem7 -g -Wall -pedantic -Werror-implicit-function-declaration -fno-common -L/Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/lib -arch i386 -Os -arch i386 -Os
app
make[2]: *** No rule to make target `Info.plist', needed by `macosxapp'. Stop.
modbuild
mkdir -p /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/modbuild
cp -f License.rtf /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/modbuild/
cp -f ReadMe.rtf /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/modbuild/
mkdir -p /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/modbuild/dist.i386-apple-darwin9.6.0
cp -rf /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/demolocation /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/modbuild/dist.i386-apple-darwin9.6.0/
sed -e 's,^GISDBASE.*,GISDBASE = /Library/GRASS/7.0/modbuild/dist.i386-apple-darwin9.6.0,g' /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/demolocation/.grassrc70 > /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/modbuild/dist.i386-apple-darwin9.6.0/demolocation/.grassrc70
mkdir -p /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/modbuild/module
mkdir -p /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/modbuild/include/Make
cp ../../include/Make/Dir.make /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/modbuild/include/Make/
cp ../../include/Make/Doxygen.make /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/modbuild/include/Make/
sed -E -e 's,@GRASS_LIB_PREFIX@,lib,g' \
  -e 's,@GRASS_LIB_SUFFIX@,.dylib,g' \
  -e 's,@GRASS_LIBRARY_TYPE@,shlib,g' \
  -e 's,@GRASS_VERSION_MAJOR@,7,g' \
  -e 's,@GRASS_VERSION_MINOR@,0,g' \
  -e 's,@GRASS_VERSION_RELEASE@,svn,g' \
  -e 's,@GRASS_VERSION_DATE@,2008,g' \
  -e 's#^ARCH_INC[[:space:]].*#& -I$(GISBASE)/include#g' \
  -e 's#^ARCH_LIBPATH.*#& -L$(GISBASE)/lib#g' \
  -e 's#^GISBASE.*#GISBASE = $(GRASS_APP)/Contents/MacOS#g' \
  ../../include/Make/Grass.make.in > /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/modbuild/include/Make/Grass.make
sed: ../../include/Make/Grass.make.in: No such file or directory
make[2]: [modbuild] Error 1 (ignored)
sed -e 's,GISRC=$(RUN_GISBASE),GISRC=/Library/GRASS/7.0/modbuild/dist.$(ARCH),g' ../../include/Make/Html.make > /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/modbuild/include/Make/Html.make
cp ../../include/Make/Lib.make /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/modbuild/include/Make/
sed -e 's,$(DEPENDENCIES),g' ../../include/Make/Module.make > /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/modbuild/include/Make/Module.make
sed -e 's,^GRASS_HOME.*,GRASS_HOME = $(GRASS_HOME),g' \
  -e 's,^RUN_GISBASE.*,RUN_GISBASE = $(GISBASE),g' \
  ../../include/Make/Platform.make > /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/modbuild/include/Make/Platform.make
cp ../../include/Make/Rules.make /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/modbuild/include/Make/
sed -e 's,GISRC=$(RUN_GISBASE),GISRC=/Library/GRASS/7.0/modbuild/dist.$(ARCH),g' ../../include/Make/Script.make > /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/modbuild/include/Make/Script.make
cp ../../include/Make/Shlib.make /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/modbuild/include/Make/
cp ../../include/Make/Stlib.make /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/modbuild/include/Make/
mkdir -p /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/modbuild/tools/g.html2man
cp ../../tools/g.html2man/g.html2man /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/modbuild/tools/g.html2man/
cp ../../tools/mkhtml.sh /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/modbuild/tools/
make /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/AUTHORS /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/COPYING /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/CHANGES /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/REQUIREMENTS.html /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/GPL.TXT
/usr/bin/install -c -m 644 AUTHORS /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/AUTHORS
/usr/bin/install -c -m 644 COPYING /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/COPYING
/usr/bin/install -c -m 644 CHANGES /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/CHANGES
/usr/bin/install -c -m 644 REQUIREMENTS.html /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/REQUIREMENTS.html
/usr/bin/install -c -m 644 GPL.TXT /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/GPL.TXT
make /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/grass70.tmp
/usr/bin/install -c /Users/cmbarton/grass_dev/grass7_src/bin.i386-apple-darwin9.6.0/grass70 /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple-darwin9.6.0/grass70.tmp
GRASS GIS compilation log
-------------------------
Started compilation: Mon Dec 22 08:30:31 MST 2008
--
Errors in:
/Users/cmbarton/grass_dev/grass7_src/lib/nviz
/Users/cmbarton/grass_dev/grass7_src/gui/wxpython/nviz
/Users/cmbarton/grass_dev/grass7_src/visualization/nviz2/cmd
/Users/cmbarton/grass_dev/grass7_src/macosx/app
--
In case of errors please change into the directory with error and run 'make'.
If you get multiple errors, you need to deal with them in the order they
appear in the error log. If you get an error building a library, you will
also get errors from anything which uses the library.
--
Finished compilation: Mon Dec 22 08:38:03 MST 2008
make: *** [default] Error 1

Looks like Glynn's r33038 messed it up. I'll have to look at it to get it working again.

Glynn: is OBJDIR not used now, or is there a different way of specifying custom OBJDIR/targets? I'll take a closer look later at other parts of GRASS for examples.

On Dec 22, 2008, at 9:50 AM, Michael Barton wrote:

Here is the mac error from compiling GRASS 7. Everything else compiled fine except for nviz_cmd of course.

The error says that it's missing an Info.plist in ./macosx/app.

I've kept a build.log as you suggested Glynn. So if you you need me to send more, let me know.

Michael

-----
William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
http://www.kyngchaos.com/

"Mon Dieu! but they are all alike. Cheating, murdering, lying, fighting, and all for things that the beasts of the jungle would not deign to possess - money to purchase the effeminate pleasures of weaklings. And yet withal bound down by silly customs that make them slaves to their unhappy lot while firm in the belief that they be the lords of creation enjoying the only real pleasures of existence....

- the wisdom of Tarzan

William Kyngesburye wrote:

Looks like Glynn's r33038 messed it up. I'll have to look at it to
get it working again.

Glynn: is OBJDIR not used now, or is there a different way of
specifying custom OBJDIR/targets? I'll take a closer look later at
other parts of GRASS for examples.

I suspect the problem is that some of the files in $(MOD_OBJS) aren't
object files. If that ever worked, it was coincidence.

You need to add an rule which will force $(OBJDIR)/Info.plist to be
built, e.g.:

$(APPDIR)/Info.plist: $(OBJDIR)/Info.plist
  -$(INSTALL_DATA) $< $@

You also need to make $(APPDIR)/Info.plist as part of the top-level
macosxapp rule. One complication is the need to ensure that $(OBJDIR)
is created first, even in parallel builds, and it seems we can't rely
upon make (particularly the OSX version) supporting order-only
dependencies.

I suggest replacing the top-level macosxapp rule with the following:

NIBSRC := $(wildcard English.lproj/MainMenu.nib/*)
NIBDST := $(patsubst English.lproj/%,$(APPDIR)/English.lproj/%,$(NIBSRC))

FILES = \
  $(APPDIR)/MacOS/etc/build_html_user_index.sh \
  $(APPDIR)/MacOS/etc/build_gui_user_menu.sh \
  ${APPDIR}/Resources/app.icns \
  $(APPDIR)/Info.plist \
  $(APPDIR)/PkgInfo \
  $(APPDIR)/Resources/Scripts/GRASS.scpt \
  $(APPDIR)/MacOS/grass.sh \
  $(APPDIR)/MacOS/GRASS \
  $(NIBDST)

macosxapp:
  -$(MAKE_DIR_CMD) $(OBJDIR)
  -$(MAKE_DIR_CMD) $(APPDIR)/Resources/Scripts
  -$(MAKE_DIR_CMD) $(APPDIR)/MacOS/scripts
  -$(MAKE_DIR_CMD) $(APPDIR)/MacOS/etc
  -$(MAKE_DIR_CMD) $(APPDIR)/English.lproj/MainMenu.nib
  $(MAKE) $(FILES)

${APPDIR}/Resources/app.icns: app.icns
  $(INSTALL_DATA) $< $@

$(APPDIR)/English.lproj/%: English.lproj/%
  $(INSTALL_DATA) $< $@

$(APPDIR)/Info.plist: $(OBJDIR)/Info.plist
  $(INSTALL_DATA) $< $@

$(APPDIR)/PkgInfo: PkgInfo
  $(INSTALL_DATA) $< $@

$(APPDIR)/Resources/Scripts/GRASS.scpt: (OBJDIR)/GRASS.scpt
  $(INSTALL_DATA) $< $@

$(APPDIR)/MacOS/grass.sh: $(OBJDIR)/grass.sh
  $(INSTALL) $< $@

$(APPDIR)/MacOS/etc/%.sh: %.sh
  $(INSTALL) $< $@

BTW, is there a reason that main.m isn't called main.c?

--
Glynn Clements <glynn@gclements.plus.com>

On Dec 22, 2008, at 12:30 PM, Glynn Clements wrote:

William Kyngesburye wrote:

Looks like Glynn's r33038 messed it up. I'll have to look at it to
get it working again.

Glynn: is OBJDIR not used now, or is there a different way of
specifying custom OBJDIR/targets? I'll take a closer look later at
other parts of GRASS for examples.

I suspect the problem is that some of the files in $(MOD_OBJS) aren't
object files. If that ever worked, it was coincidence.

Indeed, most are scripts of some sort. But it wasn't coincidence that it worked:

You need to add an rule which will force $(OBJDIR)/Info.plist to be
built, e.g.:

$(APPDIR)/Info.plist: $(OBJDIR)/Info.plist
  -$(INSTALL_DATA) $< $@

I had:

ARCH_OBJS := $(foreach obj,$(OBJS),$(OBJDIR)/$(obj))

which took care of this.

You also need to make $(APPDIR)/Info.plist as part of the top-level
macosxapp rule. One complication is the need to ensure that $(OBJDIR)
is created first, even in parallel builds, and it seems we can't rely
upon make (particularly the OSX version) supporting order-only
dependencies.

I suggest replacing the top-level macosxapp rule with the following:

NIBSRC := $(wildcard English.lproj/MainMenu.nib/*)

Will this exclude CVS/SVN hidden files? IOW, does it behave just like "ls" (without the -a flag)?

NIBDST := $(patsubst English.lproj/%,$(APPDIR)/English.lproj/%,$(NIBSRC))

FILES = \
  $(APPDIR)/MacOS/etc/build_html_user_index.sh \
  $(APPDIR)/MacOS/etc/build_gui_user_menu.sh \
  ${APPDIR}/Resources/app.icns \
  $(APPDIR)/Info.plist \
  $(APPDIR)/PkgInfo \
  $(APPDIR)/Resources/Scripts/GRASS.scpt \
  $(APPDIR)/MacOS/grass.sh \
  $(APPDIR)/MacOS/GRASS \
  $(NIBDST)

macosxapp:
  -$(MAKE_DIR_CMD) $(OBJDIR)
  -$(MAKE_DIR_CMD) $(APPDIR)/Resources/Scripts
  -$(MAKE_DIR_CMD) $(APPDIR)/MacOS/scripts
  -$(MAKE_DIR_CMD) $(APPDIR)/MacOS/etc
  -$(MAKE_DIR_CMD) $(APPDIR)/English.lproj/MainMenu.nib
  $(MAKE) $(FILES)

${APPDIR}/Resources/app.icns: app.icns
  $(INSTALL_DATA) $< $@

$(APPDIR)/English.lproj/%: English.lproj/%
  $(INSTALL_DATA) $< $@

$(APPDIR)/Info.plist: $(OBJDIR)/Info.plist
  $(INSTALL_DATA) $< $@

$(APPDIR)/PkgInfo: PkgInfo
  $(INSTALL_DATA) $< $@

$(APPDIR)/Resources/Scripts/GRASS.scpt: (OBJDIR)/GRASS.scpt
  $(INSTALL_DATA) $< $@

$(APPDIR)/MacOS/grass.sh: $(OBJDIR)/grass.sh
  $(INSTALL) $< $@

$(APPDIR)/MacOS/etc/%.sh: %.sh
  $(INSTALL) $< $@

I'll give this a go. I assume keep my $(OBJDIR)/* targets?

BTW, is there a reason that main.m isn't called main.c?

main.m is Objective-C. Obj-C is needed to create the OSX application shell.

--
Glynn Clements <glynn@gclements.plus.com>

-----
William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
http://www.kyngchaos.com/

[Trillian] What are you supposed to do WITH a maniacally depressed robot?

[Marvin] You think you have problems? What are you supposed to do if you ARE a maniacally depressed robot? No, don't try and answer, I'm 50,000 times more intelligent than you and even I don't know the answer...

- HitchHiker's Guide to the Galaxy

William Kyngesburye wrote:

> You also need to make $(APPDIR)/Info.plist as part of the top-level
> macosxapp rule. One complication is the need to ensure that $(OBJDIR)
> is created first, even in parallel builds, and it seems we can't rely
> upon make (particularly the OSX version) supporting order-only
> dependencies.
>
> I suggest replacing the top-level macosxapp rule with the following:
>
> NIBSRC := $(wildcard English.lproj/MainMenu.nib/*)

Will this exclude CVS/SVN hidden files? IOW, does it behave just like
"ls" (without the -a flag)?

In glob patterns, "*" doesn't match files or directories which begin
with a dot.

I'll give this a go. I assume keep my $(OBJDIR)/* targets?

Yes, keep the existing rules for Info.plist, GRASS.scpt and grass.sh.
You're free to use $(OBJDIR) for your own targets, so long as you
ensure that it gets created and ensure that those rules get invoked
somehow.

> BTW, is there a reason that main.m isn't called main.c?
>
main.m is Objective-C. Obj-C is needed to create the OSX application
shell.

Ah. In that case, using $(CC) is less than ideal; configure.in should
really use AC_PROG_OBJC to specifically detect an Objective-C
compiler. Similar issues exist for CFLAGS.

--
Glynn Clements <glynn@gclements.plus.com>

On Dec 22, 2008, at 5:49 PM, Glynn Clements wrote:

BTW, is there a reason that main.m isn't called main.c?

main.m is Objective-C. Obj-C is needed to create the OSX application
shell.

Ah. In that case, using $(CC) is less than ideal; configure.in should
really use AC_PROG_OBJC to specifically detect an Objective-C
compiler. Similar issues exist for CFLAGS.

It'll work as is on most, if not all, OSX systems. On OSX, there is only Xcode/GCC from Apple (Google turned up an old IBM C compiler that is somewhat compatible with GCC 3.3, but it's PPC only, it seems to be dead, and it uses the Apple linker, so the user would need to have Xcode installed anyways), and it's Obj-C.

The flags needed and used for the rest of GRASS also apply to Obj-C, though I suppose the user could add some bad flags to CFLAGS that would mess up the OBJ-C compilation. Any suggestions for an Obj-C flags name? And I suppose support for it would have to be added to configure?

If you're worried about cross-compiling, I don't think it's possible because the linker is specific to Apple, and thus not available on other platforms.

-----
William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
http://www.kyngchaos.com/

"This is a question about the past, is it? ... How can I tell that the past isn't a fiction designed to account for the discrepancy between my immediate physical sensations and my state of mind?"

- The Ruler of the Universe

On Dec 22, 2008, at 12:30 PM, Glynn Clements wrote:

I suggest replacing the top-level macosxapp rule with the following:

NIBSRC := $(wildcard English.lproj/MainMenu.nib/*)
NIBDST := $(patsubst English.lproj/%,$(APPDIR)/English.lproj/%,$(NIBSRC))

...

Oh, and should MOD_OBJS be just main.o now? ... or, no, FILES -> MacOS/GRASS -> main.o, so no MOD_OBJS?

-----
William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
http://www.kyngchaos.com/

[Trillian] What are you supposed to do WITH a maniacally depressed robot?

[Marvin] You think you have problems? What are you supposed to do if you ARE a maniacally depressed robot? No, don't try and answer, I'm 50,000 times more intelligent than you and even I don't know the answer...

- HitchHiker's Guide to the Galaxy

OSX Makefile fixed, thanks to Glynn's help.

On Dec 22, 2008, at 6:49 PM, William Kyngesburye wrote:

On Dec 22, 2008, at 12:30 PM, Glynn Clements wrote:

I suggest replacing the top-level macosxapp rule with the following:

NIBSRC := $(wildcard English.lproj/MainMenu.nib/*)
NIBDST := $(patsubst English.lproj/%,$(APPDIR)/English.lproj/%,$(NIBSRC))

...

Oh, and should MOD_OBJS be just main.o now? ... or, no, FILES -> MacOS/GRASS -> main.o, so no MOD_OBJS?

-----
William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
http://www.kyngchaos.com/

"This is a question about the past, is it? ... How can I tell that the past isn't a fiction designed to account for the discrepancy between my immediate physical sensations and my state of mind?"

- The Ruler of the Universe

I've tested compiling both GRASS 6.4 (develbranch_6) and GRASS 7 and they work fine. No errors. They seem to run fine too. No problems that I noticed.

Thanks to all who worked on this.

Michael

On Dec 22, 2008, at 7:52 PM, William Kyngesburye wrote:

OSX Makefile fixed, thanks to Glynn's help.

On Dec 22, 2008, at 6:49 PM, William Kyngesburye wrote:

On Dec 22, 2008, at 12:30 PM, Glynn Clements wrote:

I suggest replacing the top-level macosxapp rule with the following:

NIBSRC := $(wildcard English.lproj/MainMenu.nib/*)
NIBDST := $(patsubst English.lproj/%,$(APPDIR)/English.lproj/%,$(NIBSRC))

...

Oh, and should MOD_OBJS be just main.o now? ... or, no, FILES -> MacOS/GRASS -> main.o, so no MOD_OBJS?

-----
William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
http://www.kyngchaos.com/

"This is a question about the past, is it? ... How can I tell that the past isn't a fiction designed to account for the discrepancy between my immediate physical sensations and my state of mind?"

- The Ruler of the Universe

William Kyngesburye wrote:

The flags needed and used for the rest of GRASS also apply to Obj-C,
though I suppose the user could add some bad flags to CFLAGS that
would mess up the OBJ-C compilation. Any suggestions for an Obj-C
flags name?

autoconf uses OBJC for the name of the compiler and OBJCFLAGS for the
flags (default: -g -O2).

And I suppose support for it would have to be added to
configure?

Ideally, along with default rules in Compile.make.

Initially, you can just set the variables in the Makefile, equal to CC
and CFLAGS. That way, the user can always override e.g. OBJCFLAGS on
the command line if there's anything problematic in CFLAGS.

--
Glynn Clements <glynn@gclements.plus.com>

William Kyngesburye wrote:

> I suggest replacing the top-level macosxapp rule with the following:
>
> NIBSRC := $(wildcard English.lproj/MainMenu.nib/*)
> NIBDST := $(patsubst English.lproj/%,$(APPDIR)/English.lproj/%,$
> (NIBSRC))
...

Oh, and should MOD_OBJS be just main.o now? ... or, no, FILES -> MacOS/
GRASS -> main.o, so no MOD_OBJS?

There's no need, as you have your own linking rule for
$(APPDIR)/MacOS/GRASS.

MOD_OBJS is used to generate ARCH_OBJS, which is the list of
prerequisites for the standard targets defined in Module.make,
Etc.make, Lib.make and DB.make.

As you aren't generating one of those targets, it won't be used.

--
Glynn Clements <glynn@gclements.plus.com>