Browse code

OS/2 support restored in cleaner form. patch by Dave Yeo, daveryeo telus net

Originally committed as revision 11172 to svn://svn.ffmpeg.org/ffmpeg/trunk

Dave Yeo authored on 2007/12/06 08:15:24
Showing 3 changed files
... ...
@@ -90,7 +90,7 @@ version <next>
90 90
 - codebook generator
91 91
 - RoQ video encoder
92 92
 - QTRLE encoder
93
-- OS/2 support removed
93
+- OS/2 support removed and restored again
94 94
 - AC-3 decoder
95 95
 - NUT muxer (since r10052)
96 96
 - Matroska muxer
... ...
@@ -28,6 +28,7 @@ $(SLIBNAME): $(SLIBNAME_WITH_MAJOR)
28 28
 	$(LN_S) $^ $@
29 29
 
30 30
 $(SLIBNAME_WITH_MAJOR): $(OBJS)
31
+	$(SLIB_CREATE_DEF_CMD)
31 32
 	$(CC) $(SHFLAGS) $(LDFLAGS) -o $@ $^ $(EXTRALIBS) $(EXTRAOBJS)
32 33
 	$(SLIB_EXTRA_CMD)
33 34
 
... ...
@@ -51,7 +52,7 @@ depend dep: $(SRCS)
51 51
 
52 52
 clean::
53 53
 	rm -f *.o *~ *.a *.lib *.so *.so.* *.dylib *.dll \
54
-	      *.def *.dll.a *.exp *.ho
54
+	      *.def *.dll.a *.exp *.ho *.map
55 55
 
56 56
 distclean: clean
57 57
 	rm -f .depend
... ...
@@ -71,6 +71,7 @@ show_help(){
71 71
   echo "  --enable-pp              enable GPLed postprocessing support [default=no]"
72 72
   echo "  --enable-swscaler        software scaler support [default=no]"
73 73
   echo "  --enable-beosthreads     use BeOS threads [default=no]"
74
+  echo "  --enable-os2threads      use OS/2 threads [default=no]"
74 75
   echo "  --enable-pthreads        use pthreads [default=no]"
75 76
   echo "  --enable-w32threads      use Win32 threads [default=no]"
76 77
   echo "  --enable-x11grab         enable X11 grabbing [default=no]"
... ...
@@ -637,6 +638,7 @@ CONFIG_LIST="
637 637
 
638 638
 THREADS_LIST='
639 639
     beosthreads
640
+    os2threads
640 641
     pthreads
641 642
     w32threads
642 643
 '
... ...
@@ -1219,6 +1221,34 @@ case $targetos in
1219 1219
         targetos=irix
1220 1220
         ranlib="echo ignoring ranlib"
1221 1221
         ;;
1222
+    os/2*)
1223
+        ar="emxomfar -p256"
1224
+        ranlib="echo ignoring ranlib"
1225
+        strip="lxlite"
1226
+        ln_s="cp -f"
1227
+        add_cflags "-Zomf"
1228
+        EXESUF=".exe"
1229
+        FFLDFLAGS="-Zomf -Zbin-files -Zargs-wild -Zmap"
1230
+        SHFLAGS='$(NAME).def -Zdll -Zomf'
1231
+        FFSERVERLDFLAGS=""
1232
+        LIBSUF="_s.lib"
1233
+        SLIBPREF=""
1234
+        SLIBSUF=".dll"
1235
+        SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)'
1236
+        SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(shell echo $(NAME) | cut -c1-6)$(LIBMAJOR)$(SLIBSUF)'
1237
+        SLIB_CREATE_DEF_CMD='echo LIBRARY $(SLIBNAME_WITH_MAJOR) INITINSTANCE TERMINSTANCE > $(NAME).def; \
1238
+          echo PROTMODE >> $(NAME).def; \
1239
+          echo CODE PRELOAD MOVEABLE DISCARDABLE >> $(NAME).def; \
1240
+          echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $(NAME).def; \
1241
+          echo EXPORTS >> $(NAME).def; \
1242
+          emxexp -o $(OBJS) >> $(NAME).def'
1243
+        SLIB_EXTRA_CMD='emximp -o $(LIBPREF)$(NAME)_dll.a $(NAME).def; \
1244
+          emximp -o $(LIBPREF)$(NAME)_dll.lib $(NAME).def;'
1245
+        SLIB_INSTALL_EXTRA_CMD='install -m 644 $(LIBPREF)$(NAME)_dll.a $(LIBPREF)$(NAME)_dll.lib "$(LIBDIR)"'
1246
+        SLIB_UNINSTALL_EXTRA_CMD='rm -f "$(LIBDIR)"/$(LIBPREF)$(NAME)_dll.a "$(LIBDIR)"/$(LIBPREF)$(NAME)_dll.lib'
1247
+        vhook="no"
1248
+        ;;
1249
+
1222 1250
     *)
1223 1251
         targetos="${targetos}-UNKNOWN"
1224 1252
         ;;
... ...
@@ -1936,6 +1966,7 @@ if enabled shared; then
1936 1936
     echo "SLIBNAME=${SLIBNAME}" >> config.mak
1937 1937
     echo "SLIBNAME_WITH_VERSION=${SLIBNAME_WITH_VERSION}" >> config.mak
1938 1938
     echo "SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}" >> config.mak
1939
+    echo "SLIB_CREATE_DEF_CMD=${SLIB_CREATE_DEF_CMD}" >> config.mak
1939 1940
     echo "SLIB_EXTRA_CMD=${SLIB_EXTRA_CMD}" >> config.mak
1940 1941
     echo "SLIB_INSTALL_EXTRA_CMD=${SLIB_INSTALL_EXTRA_CMD}" >> config.mak
1941 1942
     echo "SLIB_UNINSTALL_EXTRA_CMD=${SLIB_UNINSTALL_EXTRA_CMD}" >> config.mak