Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 90614 | Differences between
and this patch

Collapse All | Expand All

(-)portmidi/CMakeLists.txt (-1 lines)
Lines 73-77 Link Here
73
add_subdirectory(pm_dylib)
73
add_subdirectory(pm_dylib)
74
74
75
# Cannot figure out how to make an xcode Java application with CMake
75
# Cannot figure out how to make an xcode Java application with CMake
76
add_subdirectory(pm_java)
77
76
(-)portmidi/pm_linux/Makefile (-61 / +3 lines)
Lines 44-51 Link Here
44
current: all
44
current: all
45
45
46
all: $(pmlib) $(ptlib) pm_test/test pm_test/sysex pm_test/midithread \
46
all: $(pmlib) $(ptlib) pm_test/test pm_test/sysex pm_test/midithread \
47
	pm_test/latency pm_test/midithru pm_test/qtest pm_test/mm \
47
	pm_test/latency pm_test/midithru pm_test/qtest pm_test/mm
48
	pm_java/pmjni/libpmjni.so pm_java/pmdefaults/pmdefaults.jar 
49
48
50
$(pmlib): pm_linux/Makefile $(pmobjects)
49
$(pmlib): pm_linux/Makefile $(pmobjects)
51
	ar -cr $(pmlib) $(pmobjects)
50
	ar -cr $(pmlib) $(pmobjects)
Lines 88-154 Link Here
88
pm_test/qtest: pm_linux/Makefile pm_test/qtest.o $(pmlib) $(ptlib)
87
pm_test/qtest: pm_linux/Makefile pm_test/qtest.o $(pmlib) $(ptlib)
89
	$(CC) pm_test/qtest.o -o pm_test/qtest $(pmlib) $(ptlib) $(ALSALIB)
88
	$(CC) pm_test/qtest.o -o pm_test/qtest $(pmlib) $(ptlib) $(ALSALIB)
90
89
91
#------------ Java stuff here --------------
92
93
pm_java/pmjni/libpmjni.so: pm_java/pmjni/pmjni.c \
94
                       pm_java/pmjni/jportmidi_JportMidiApi.h
95
	gcc -o $@ -shared -Wl,-soname,libpmjni.so \
96
	    -lgcj -fPIC \
97
            -Ipm_common -Iporttime -Ipm_java/pmjni \
98
	    pm_java/pmjni/pmjni.c -static -lc $(pmlib) $(ptlib) $(ALSALIB)
99
100
#pm_java/pmjni/pmjni.so: pm_java/pmjni/pmjni.o \
101
#                        pm_java/pmjni/jportmidi_JportMidiApi.h
102
#	cd pm_java/pmjni; gcc -fPIC -shared -o pmjni.so \
103
#           -Wl,--whole-archive,-soname,pmjni.so \
104
#           pmjni.o -lgcj -Wl,--no-whole-archive
105
106
JAVASRC = pm_java/jportmidi/JPortMidi.java \
107
          pm_java/jportmidi/JPortMidiException.java \
108
          pm_java/jportmidi/JPortMidiApi.java
109
110
pm_java/jportmidi/JPortMidi.class: $(JAVASRC)
111
	javac pm_java/jportmidi/*.java
112
113
pm_java/jportmidi/JPortMidiException.class: $(JAVASRC)
114
	javac pm_java/jportmidi/*.java
115
116
pm_java/jportmidi/JPortMidiApi.class: $(JAVASRC)
117
	javac pm_java/jportmidi/*.java
118
119
DEFAULTSSRC = pm_java/pmdefaults/PmDefaultsFrame.java \
120
              pm_java/pmdefaults/PmDefaults.java
121
122
pm_java/pmdefaults/PmDefaultsFrame.class: $(DEFAULTSRC)
123
	cd pm_java; javac -classpath . pmdefaults/*.java
124
125
pm_java/pmdefaults/PmDefaults.class: $(DEFAULTSRC)
126
	cd pm_java; javac -classpath . pmdefaults/*.java
127
128
129
DEFAULTCLASS = pm_java/jportmidi/JPortMidi.class \
130
               pm_java/jportmidi/JPortMidiException.class \
131
               pm_java/jportmidi/JPortMidiApi.class \
132
               pm_java/pmdefaults/PmDefaultsFrame.class \
133
               pm_java/pmdefaults/PmDefaults.class
134
135
136
# make the jar file:
137
#    work in pm_java directory
138
#    temporarily copy logo image to current directory
139
#    copy the interface library to the 
140
pm_java/pmdefaults/pmdefaults.jar: $(DEFAULTCLASS)
141
	cd pm_java; cp pmdefaults/portmusic_logo.png .
142
	cd pm_java; jar cmf pmdefaults/manifest.txt pmdefaults.jar \
143
                            pmdefaults/*.class portmusic_logo.png \
144
                            jportmidi/*.class
145
	cd pm_java; rm portmusic_logo.png
146
	# just in case, make it executable
147
	cd pm_java; chmod +x pmdefaults/pmdefaults
148
90
149
install:
91
install:
150
	cp pm_java/pmjni/libpmjni.so /usr/local/lib
92
	#cp pm_java/pmjni/libpmjni.so /usr/local/lib
151
	cp pm_java/pmdefaults.jar /usr/share/java
93
	#cp pm_java/pmdefaults.jar /usr/share/java
152
	# do not chmod +x here since we are probably root
94
	# do not chmod +x here since we are probably root
153
	cp pm_java/pmdefaults/pmdefaults /usr/local/bin
95
	cp pm_java/pmdefaults/pmdefaults /usr/local/bin
154
96
(-)portmidi/pm_common/CMakeLists.txt (-15 / +6 lines)
Lines 72-82 Link Here
72
    # JAVA_INCLUDE_PATH2; if no, then we need to make both JAVA_INCLUDE_PATH
72
    # JAVA_INCLUDE_PATH2; if no, then we need to make both JAVA_INCLUDE_PATH
73
    # and JAVA_INCLUDE_PATH2 set by user (will need clear documentation
73
    # and JAVA_INCLUDE_PATH2 set by user (will need clear documentation
74
    # because JAVA_INCLUDE_PATH2 is pretty obscure)
74
    # because JAVA_INCLUDE_PATH2 is pretty obscure)
75
    set(JAVA_INCLUDE_PATH  ${JAVA_INCLUDE_PATH-UNKNOWN}
75
    #set(JAVA_INCLUDE_PATH  ${JAVA_INCLUDE_PATH-UNKNOWN}
76
        CACHE STRING "where to find Java SDK include directory")
76
    #    CACHE STRING "where to find Java SDK include directory")
77
    set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH}/linux)
77
    #set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH}/linux)
78
    # libjvm.so is found relative to JAVA_INCLUDE_PATH:
78
    # libjvm.so is found relative to JAVA_INCLUDE_PATH:
79
    set(JAVAVM_LIB ${JAVA_INCLUDE_PATH}/../jre/lib/i386/client/libjvm.so)
79
    #set(JAVAVM_LIB ${JAVA_INCLUDE_PATH}/../jre/lib/i386/client/libjvm.so)
80
80
81
    set(LINUXSRC pmlinuxalsa pmlinux finddefault)
81
    set(LINUXSRC pmlinuxalsa pmlinux finddefault)
82
    prepend_path(LIBSRC ../pm_linux/ ${LINUXSRC})
82
    prepend_path(LIBSRC ../pm_linux/ ${LINUXSRC})
Lines 104-130 Link Here
104
    # message(STATUS "JAVAVM_LIB: " ${JAVAVM_LIB})
104
    # message(STATUS "JAVAVM_LIB: " ${JAVAVM_LIB})
105
  endif(WIN32)
105
  endif(WIN32)
106
endif(UNIX)
106
endif(UNIX)
107
set(JNI_EXTRA_LIBS ${PM_NEEDED_LIBS} ${JAVAVM_LIB})
108
107
109
# this completes the list of library sources by adding shared code
108
# this completes the list of library sources by adding shared code
110
list(APPEND LIBSRC pmutil portmidi)
109
list(APPEND LIBSRC pmutil portmidi)
111
110
112
# now add the shared files to make the complete list of library sources
111
# now add the shared files to make the complete list of library sources
113
add_library(portmidi-static ${LIBSRC})
112
add_library(portmidi-static ${LIBSRC})
114
set_target_properties(portmidi-static PROPERTIES OUTPUT_NAME "portmidi_s")
113
set_target_properties(portmidi-static PROPERTIES OUTPUT_NAME "portmidi")
115
target_link_libraries(portmidi-static ${PM_NEEDED_LIBS})
114
target_link_libraries(portmidi-static ${PM_NEEDED_LIBS})
116
115
117
# define the jni library
118
include_directories(${JAVA_INCLUDE_PATHS})
119
120
set(JNISRC ${LIBSRC} ../pm_java/pmjni/pmjni.c)
121
add_library(pmjni SHARED ${JNISRC})
122
target_link_libraries(pmjni ${JNI_EXTRA_LIBS})
123
set_target_properties(pmjni PROPERTIES EXECUTABLE_EXTENSION "jnilib")
124
125
# install the libraries (Linux and Mac OS X command line)
116
# install the libraries (Linux and Mac OS X command line)
126
if(UNIX)
117
if(UNIX)
127
  INSTALL(TARGETS portmidi-static pmjni
118
  INSTALL(TARGETS portmidi-static
128
    LIBRARY DESTINATION /usr/local/lib
119
    LIBRARY DESTINATION /usr/local/lib
129
    ARCHIVE DESTINATION /usr/local/lib)
120
    ARCHIVE DESTINATION /usr/local/lib)
130
# .h files installed by pm_dylib/CMakeLists.txt, so don't need them here
121
# .h files installed by pm_dylib/CMakeLists.txt, so don't need them here

Return to bug 90614