The Essbase API is supported on the same platforms Essbase supports: HP-UX, AIX, Solaris, and Linux. The Essbase API supports the same CPU architechtures (with regard to 32- and 64-bit) that are supported by Essbase. See the Oracle Hyperion Enterprise Performance Management System Installation and Configuration Guide.
This topic provides the information needed to compile an application program using the API on UNIX.
The Essbase API for UNIX uses the standard C library memory allocation functions, malloc(), realloc(), and free(), as the default memory functions. You use the default memory functions if you pass NULLs in the AllocFunc, ReallocFunc, and FreeFuncfields of the ESS_INIT_T initialization structure. See Using Memory in C Programs for more information.
EssAutoLogin() is not supported in the UNIX versions of the Essbase API.
Be sure to follow UNIX file-naming conventions when using UNIX versions of the Essbase API.
HP-UX-supplied files—For a listing of files supplied with Essbase API for HP-UX, see API Libraries.
Use the -L flag to tell the linker where to locate the shared libraries:$(CC) file1.o file2.o -L /essbase/lib -lessapi \ $(LIBS) -o
All libess*.sl files are linked with the +s flag which allows you to use the SHLIB_PATH search path to locate the shared library when the linked program is run. For further information about SHLIB_PATH, please check HP-UX programming documentation.
Linking programs on HP-UX—With the Essbase 6.0 release, you must use aCC to link your program to maintain compatibility with the third party libraries used with Essbase. If you are using an earlier version, you should use the ld compiler for linking.
HP-UX Make File example—The following sample shows a make file for HP-UX.
# Compiler Flags CC=cc CFLAGS = -I$(<Location of API>)/api/include -g # Library files; LIBS = -L$(<Location of API>)/api/lib -lessapinu -lessotlnu -lessgapinu main: main.o $(CC) -o $@ $^ $(LIBS) main.o: main.c $(CC) $(CFLAGS) $< -c -o $@
Modify this sample make file to reflect the directories where you have installed the API files and add other compiling options you want to use.
Even though the link line only specifies three libraries to link against, all of the .sl files must be available at runtime.
HP-UX 64-bit Make File example—On 64-bit HP-UX, use the compiler flag +DD64. No linker flag is needed.
# Compiler Flags CC=cc CFLAGS = +DD64 -I$(<Location of API>)/api/include -g # Library files; LIBS = -L$(<Location of API>)/api/lib -lessapinu -lessotlnu -lessgapinu main: main.o $(CC) -o $@ $? $(LIBS) main.o: main.c $(CC) $(CFLAGS) -c $< -o $@
Modify this sample make file to reflect the directories where you have installed the API files and add other compiling options you want to use.
Even though the link line only specifies three Essbase libraries to link against, all of the .so files must be available at runtime.
AIX-supplied files—For a listing of files supplied with Essbase API for AIX, see API Libraries.
AIX Make File example—The following sample shows a make file for AIX.
# Compiler Flags CC=cc_r CFLAGS = -qcpluscmt -I$(<Location of API>)/api/include -g # Library files; LIBS = -L$(<Location of API>)/api/lib -lessapinuS -lessotlnuS -lessgapinuS main: main.o $(CC) -o $@ $^ $(LIBS) main.o: main.c $(CC) $(CFLAGS) $< -c -o $@
Modify this sample make file to reflect the directories where you have installed the API files and add other compiling options you want to use.
For 64-bit AIX, use the -q64 -DAIX64 -DBIT64 compiler and -b64 linker flags.
Solaris-supplied files—For a listing of files supplied with Essbase API for Solaris, see API Libraries.
Solaris Make File example—The following sample shows a make file for Solaris.
# Compiler Flags CC=cc CFLAGS = -I$(<Location of API>)/api/include -g # Library files; LIBS = -L$(<Location of API>)/api/lib -lessapinu -lessotlnu -lessgapinu main: main.o $(CC) -o $@ $^ $(LIBS) main.o: main.c $(CC) $(CFLAGS) $< -c -o $@
Modify this sample make file to reflect the directories where you have installed the API files and add other compiling options you want to use.
For 64-bit Solaris, use the -xarch=generic64 -DBIT64 compiler and -xarch=generic64 linker flags.
Red Hat Linux-supplied files—For a listing of files supplied with Essbase API for Red Hat Linux, see API Libraries.
Red Hat Linux Make File example—The following listing shows a sample make file to compile and link a Red Hat Linux API program using the GCC compiler:
# Compiler Flags CC=gcc CFLAGS = -I$(<Location of API>)/api/include -g # Library files; LIBS = -L$(<Location of API>)/api/lib -lessapinu -lessotlnu -lessgapinu main: main.o $(CC) -o $@ $^ $(LIBS) main.o: main.c $(CC) $(CFLAGS) $< -c -o $@
Linux 64-bit Make File example—On 64-bit Linux, use the compiler flag -DBIT64.
# Compiler Flags CC=gcc CFLAGS = -I$(<Location of API>)/api/include -g -DBIT64 # Library files; LIBS = -L$(<Location of API>)/api/lib -lessapinu -lessotlnu -lessgapinu main: main.o $(CC) -o $@ $^ $(LIBS) main.o: main.c $(CC) $(CFLAGS) $< -c -o $@
Modify the sample make file to reflect the directories where you have installed the API files and add other compiling options you want to use.