I've run into some problems compiling for Karmic. I guess gcc is a little more militant about #elif in Karmic:
c++ -o nsNativeAppSupportUnix.o -c -I../../dist/include/system_wrappers -include /home/colin/Source/celtx/karmic/celtx-2.0.1/mozilla/config/gcc_hidden.h -DGF_CELTX -DIMPL_XREAPI -DMOZILLA_INTERNAL_API -DOSTYPE=\"Linux2.6\" -DOSARCH=Linux -D_BUILD_STATIC_BIN -DOS_TARGET=\"Linux\" -DTARGET_XPCOM_ABI=\"x86_64-gcc3\" -DTARGET_OS_ABI=\"Linux_x86_64-gcc3\" -DTOOLKIT_EM_VERSION=\"1.9.0.5\" -DWRAP_SYSTEM_INCLUDES -I/home/colin/Source/celtx/karmic/celtx-2.0.1/mozilla/widget/src/xremoteclient -I/home/colin/Source/celtx/karmic/celtx-2.0.1/mozilla/toolkit/xre -I/home/colin/Source/celtx/karmic/celtx-2.0.1/mozilla/toolkit/xre/../profile/src -I/home/colin/Source/celtx/karmic/celtx-2.0.1/mozilla/config -I/home/colin/Source/celtx/karmic/celtx-2.0.1/mozilla/toolkit/xre -I. -I../../dist/include/appcomps -I../../dist/include/toolkitcomps -I../../dist/include/appshell -I../../dist/include/chrome -I../../dist/include/content -I../../dist/include/docshell -I../../dist/include/dom -I../../dist/include/embed_base -I../../dist/include/embedcomponents -I../../dist/include/extensions -I../../dist/include/gfx -I../../dist/include/intl -I../../dist/include/js -I../../dist/include/necko -I../../dist/include/pref -I../../dist/include/profile -I../../dist/include/string -I../../dist/include/uriloader -I../../dist/include/widget -I../../dist/include/windowwatcher -I../../dist/include/xpcom -I../../dist/include/xpconnect -I../../dist/include/xpinstall -I../../dist/include -I../../dist/include/xulapp -I../../dist/include/nspr -I../../dist/sdk/include -fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wcast-align -Wno-long-long -pedantic -fno-strict-aliasing -fshort-wchar -pthread -pipe -DNDEBUG -DTRIMMED -Os -freorder-blocks -fno-reorder-functions -D_REENTRANT -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include/libpng12 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/gtk-unix-print-2.0 -DMOZILLA_CLIENT -include ../../mozilla-config.h -Wp,-MD,.deps/nsNativeAppSupportUnix.pp /home/colin/Source/celtx/karmic/celtx-2.0.1/mozilla/toolkit/xre/nsNativeAppSupportUnix.cpp /home/colin/Source/celtx/karmic/celtx-2.0.1/mozilla/toolkit/xre/nsAppRunner.cpp:1462:6: error: #elif with no expression
It looks like it's a stub for more cases which isn't properly commented out. I'm trying to change it to #else and hoping it works. I'm no c++ guru, though...
#elif defined(XP_BEOS) int32 cookie = 0; image_info info;
if(get_next_image_info(0, &cookie, &info) != B_OK) return NS_ERROR_FAILURE;
rv = NS_NewNativeLocalFile(nsDependentCString(info.name), PR_TRUE, getter_AddRefs(lf)); if (NS_FAILED(rv)) return rv;
#elif #error Oops, you need platform-specific code here #endif
I'm making my change just above.
I've run into some problems compiling for Karmic. I guess gcc is a little more militant about #elif in Karmic:
c++ -o nsNativeAppSupp ortUnix. o -c -I../.. /dist/include/ system_ wrappers -include /home/colin/ Source/ celtx/karmic/ celtx-2. 0.1/mozilla/ config/ gcc_hidden. h -DGF_CELTX -DIMPL_XREAPI -DMOZILLA_ INTERNAL_ API -DOSTYPE= \"Linux2. 6\" -DOSARCH=Linux -D_BUILD_STATIC_BIN -DOS_TARGET= \"Linux\ " -DTARGET_ XPCOM_ABI= \"x86_64- gcc3\" -DTARGET_ OS_ABI= \"Linux_ x86_64- gcc3\" -DTOOLKIT_ EM_VERSION= \"1.9.0. 5\" -DWRAP_ SYSTEM_ INCLUDES -I/home/ colin/Source/ celtx/karmic/ celtx-2. 0.1/mozilla/ widget/ src/xremoteclie nt -I/home/ colin/Source/ celtx/karmic/ celtx-2. 0.1/mozilla/ toolkit/ xre -I/home/ colin/Source/ celtx/karmic/ celtx-2. 0.1/mozilla/ toolkit/ xre/../ profile/ src -I/home/ colin/Source/ celtx/karmic/ celtx-2. 0.1/mozilla/ config -I/home/ colin/Source/ celtx/karmic/ celtx-2. 0.1/mozilla/ toolkit/ xre -I. -I../.. /dist/include/ appcomps -I../.. /dist/include/ toolkitcomps -I../.. /dist/include/ appshell -I../.. /dist/include/ chrome -I../.. /dist/include/ content -I../.. /dist/include/ docshell -I../.. /dist/include/ dom -I../.. /dist/include/ embed_base -I../.. /dist/include/ embedcomponents -I../.. /dist/include/ extensions -I../.. /dist/include/ gfx -I../.. /dist/include/ intl -I../.. /dist/include/ js -I../.. /dist/include/ necko -I../.. /dist/include/ pref -I../.. /dist/include/ profile -I../.. /dist/include/ string -I../.. /dist/include/ uriloader -I../.. /dist/include/ widget -I../.. /dist/include/ windowwatcher -I../.. /dist/include/ xpcom -I../.. /dist/include/ xpconnect -I../.. /dist/include/ xpinstall -I../.. /dist/include -I../.. /dist/include/ xulapp -I../.. /dist/include/ nspr -I../.. /dist/sdk/ include -fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith -Woverloaded- virtual -Wsynth -Wno-ctor- dtor-privacy -Wno-non- virtual- dtor -Wcast-align -Wno-long-long -pedantic -fno-strict- aliasing -fshort-wchar -pthread -pipe -DNDEBUG -DTRIMMED -Os -freorder-blocks -fno-reorder- functions -D_REENTRANT -I/usr/ include/ gtk-2.0 -I/usr/ lib/gtk- 2.0/include -I/usr/ include/ atk-1.0 -I/usr/ include/ cairo -I/usr/ include/ pango-1. 0 -I/usr/ include/ pixman- 1 -I/usr/ include/ freetype2 -I/usr/ include/ directfb -I/usr/ include/ libpng12 -I/usr/ include/ glib-2. 0 -I/usr/ lib/glib- 2.0/include -I/usr/ include/ gtk-unix- print-2. 0 -DMOZILLA_CLIENT -include ../../mozilla- config. h -Wp,-MD, .deps/nsNativeA ppSupportUnix. pp /home/colin/ Source/ celtx/karmic/ celtx-2. 0.1/mozilla/ toolkit/ xre/nsNativeApp SupportUnix. cpp Source/ celtx/karmic/ celtx-2. 0.1/mozilla/ toolkit/ xre/nsAppRunner .cpp:1462: 6: error: #elif with no expression
/home/colin/
It looks like it's a stub for more cases which isn't properly commented out. I'm trying to change it to #else and hoping it works. I'm no c++ guru, though...
#elif defined(XP_BEOS)
int32 cookie = 0;
image_info info;
if(get_ next_image_ info(0, &cookie, &info) != B_OK)
return NS_ERROR_FAILURE;
rv = NS_NewNativeLoc alFile( nsDependentCStr ing(info. name), PR_TRUE,
getter_ AddRefs( lf));
if (NS_FAILED(rv))
return rv;
#elif
#error Oops, you need platform-specific code here
#endif
I'm making my change just above.