OSDN Git Service

Fix BSD build
authorAlaskanEmily <yoloshart@gmail.com>
Sat, 10 Mar 2018 19:13:55 +0000 (19:13 +0000)
committerAlaskanEmily <yoloshart@gmail.com>
Sat, 10 Mar 2018 19:13:55 +0000 (19:13 +0000)
GNUmakefile
cin_common.c
cin_driver_dsound.cpp
cin_driver_openal.c
cin_export.h
cin_loader_soft.c
nmakefile
sine_test.c

index 0f8e185..ee94d55 100644 (file)
@@ -2,59 +2,7 @@
 # http://creativecommons.org/publicdomain/zero/1.0/
 
 OBJ?=.o
-SO?=.so
-A?=.a
-LIB?=lib
-CP?=cp
-MV?=mv
-MVFLAGS?=
-CPFLAGS?=
-
-CC?=gcc
-CXX?=g++
-AR?=ar
-RANLIB?=ranlib
-LINKER?=$(CXX)
-SHAREDFLAG?=-shared
-LINKFLAGS?=-g
-CCFLAGS=-Wall -Wextra -pedantic -Wshadow -Werror -g -DCIN_INTERNAL
-
-CFLAGS?=
-CFLAGS+=-ansi -Wenum-compare -Os
-
-CXXFLAGS?=
-CXXFLAGS+=-fno-rtti -fno-exceptions -O2
 
 include cin_build.mk
 include cin_build_openal.mk
-
-openal: $(OPENAL_OBJECTS) cin_common.o $(TEST_OBJS)
-       $(LINK) $(OPENAL_OBJECTS) cin_common.o -lopenal $(LINKFLAGS) -o $(LIB)cinnamon$(SO)
-       $(CP) $(CPFLAGS) $(LIB)cinnamon$(SO) $(LIB)cinnamon_openal$(SO)
-       $(AR) rc x.a $(OPENAL_OBJECTS) cin_common.o
-       $(RANLIB) x.a
-       $(CP) $(CPFLAGS) x.a $(LIB)cinnamon_openal$(A)
-       $(MV) $(MVFLAGS) x.a $(LIB)cinnamon$(A)
-
-# Common objects
-cin_common.o: $(CIN_COMMON_DEPS)
-       $(CC) $(CFLAGS) cin_common.c -o cin_common.o
-
-cin_loader_soft.o: $(CIN_LOADER_SOFT_DEPS)
-       $(CC) $(CFLAGS) -c cin_loader_soft.c -o cin_loader_soft.o
-
-# OpenAL objects
-cin_loader_openal.o: $(CIN_LOADER_OPENAL_DEPS)
-       $(CC) $(CFLAGS) -c cin_loader_openal.c -o cin_loader_openal.o
-
-cin_driver_openal.o: $(CIN_DRIVER_OPENAL_DEPS)
-       $(CC) $(CFLAGS) -c cin_driver_openal.c -o cin_driver_openal.o
-
-cin_sound_openal.o: $(CIN_SOUND_OPENAL_DEPS)
-       $(CC) $(CFLAGS) -c cin_sound_openal.c -o cin_sound_openal.o
-
-#Test objects
-sine_test.o: $(SINE_TEST_DEPS)
-       $(CC) $(CFLAGS) -c sine_test.c
-
-.PHONY: openal
+include cin_build_gcc.mk
index 6850da4..9322b4d 100755 (executable)
@@ -39,7 +39,7 @@ CIN_PRIVATE(enum Cin_LoaderError) Cin_FormatCompatible(struct Cin_Driver *drv,
         const enum Cin_DriverError drv_err =
             Cin_DriverSupportsSampleRate(drv, sample_rate);
         if(drv_err != Cin_eDriverSuccess){
-            assert(drv_err == Cin_eLoaderUnsupportedSampleRate);
+            assert(drv_err == Cin_eDriverUnsupportedSampleRate);
             return (enum Cin_LoaderError)drv_err;
         }
     }
index d2c2a25..c72ca20 100755 (executable)
@@ -251,6 +251,7 @@ CIN_EXPORT(enum Cin_DriverError) Cin_DriverSupportsSampleRate(
         case 22050:
         case 44100:
         case 44800:
+        case 48000:
             return Cin_eDriverSuccess;
         default:
             return Cin_eDriverUnsupportedSampleRate;
@@ -263,8 +264,8 @@ enum Cin_LoaderError Cin_CreateLoader(struct Cin_Loader *out,
     unsigned num_channels,
     enum Cin_Format format){
     
-    assert(out);
-    assert(drv);
+    assert(out != NULL);
+    assert(drv != NULL);
     
     {
         const enum Cin_LoaderError err =
index ae5c70f..356b221 100755 (executable)
@@ -10,6 +10,7 @@
 #include "cin_openal.h"
 
 #include <assert.h>
+#include <stdlib.h>
 
 unsigned Cin_StructDriverSize(){
     return sizeof(struct Cin_Driver);
index 00cdab0..d694810 100755 (executable)
   #endif
   
 #elif defined __GNUC__ /* GCC or not WIN32 */
-    
+
+#ifdef __CYGWIN__
   /* Use the C calling convention for all exported symbols, with protected visibility. */
   #define CIN_EXPORT(X) X __attribute__((visibility ("default"), cdecl, used))
-  
   /* Internal functions have hidden visibility. */
   #define CIN_PRIVATE(X) X __attribute__((visibility("hidden"), fastcall))
+#else
+  #define CIN_EXPORT(X) X __attribute__((visibility ("default")))
+  #define CIN_PRIVATE(X) X __attribute__((visibility("hidden")))
+#endif
     
 #else /* not WIN32 and not GCC */
     
index 791ccda..defa974 100755 (executable)
@@ -1,6 +1,7 @@
 #include "cin_loader_soft.h"
 #include "cin_loader.h"
 
+#include <assert.h>
 #include <stdlib.h>
 
 unsigned Cin_StructLoaderSize(){
@@ -12,6 +13,8 @@ CIN_PRIVATE(void) Cin_CreateSoftLoader(struct Cin_Loader *out,
     unsigned channels,
     enum Cin_Format format){
     
+    assert(out != NULL);
+    
     out->sample_rate = sample_rate;
     out->channels = channels;
     out->format = format;
@@ -26,6 +29,8 @@ enum Cin_LoaderError Cin_LoaderPut(struct Cin_Loader *ld,
     struct Cin_LoaderData *const lddata =
         malloc(sizeof(struct Cin_LoaderData) + byte_size);
     
+    assert(lddata != NULL);
+    
     lddata->next = NULL;
     lddata->len = byte_size;
     
index 93c1747..793ae50 100755 (executable)
--- a/nmakefile
+++ b/nmakefile
@@ -14,14 +14,6 @@ CXXFLAGS=$(CLFLAGS) /Os /W3
 !INCLUDE cin_build_openal.mk
 !INCLUDE cin_build_dsound.mk
 
-dsound: $(DSOUND_OBJECTS) cin_common.obj $(TEST_OBJS)
-       $(LINK) $(DSOUND_OBJECTS) cin_common.obj dsound.lib dxguid.lib $(LINKFLAGS)
-       $(LINK) sine_test.obj cinnamon.lib /NOLOGO
-
-openal: $(OPENAL_OBJECTS) cin_common.obj $(TEST_OBJS)
-       $(LINK) $(OPENAL_OBJECTS) cin_common.obj lib\OpenAL32.lib $(LINKFLAGS)
-       $(LINK) sine_test.obj cinnamon.lib /NOLOGO
-
 # Common objects
 cin_common.obj: $(CIN_COMMON_DEPS)
        $(CL) $(CFLAGS) cin_common.c
@@ -49,3 +41,13 @@ cin_sound_openal.obj: $(CIN_SOUND_OPENAL_DEPS)
 #Test objects
 sine_test.obj: $(SINE_TEST_DEPS)
        $(CL) $(CFLAGS) sine_test.c
+
+cinnamon.dll: $(DSOUND_OBJECTS) cin_common.obj $(TEST_OBJS)
+       $(LINK) $(DSOUND_OBJECTS) cin_common.obj dsound.lib dxguid.lib $(LINKFLAGS)
+       $(LINK) sine_test.obj cinnamon.lib /NOLOGO
+
+openal: $(OPENAL_OBJECTS) cin_common.obj $(TEST_OBJS)
+       $(LINK) $(OPENAL_OBJECTS) cin_common.obj lib\OpenAL32.lib $(LINKFLAGS)
+       $(LINK) sine_test.obj cinnamon.lib /NOLOGO
+
+dsound: cinnamon.dll
index 5853186..52aec4f 100755 (executable)
@@ -3,6 +3,8 @@
  * http://creativecommons.org/publicdomain/zero/1.0/
  */
 
+#define _POSIX_C_SOURCE 199309L
+
 #include "cin_driver.h"
 #include "cin_loader.h"
 #include "cin_sound.h"
@@ -18,6 +20,7 @@
 #include <Windows.h>
 #else
 #include <time.h>
+#include <unistd.h>
 #endif
 
 #ifndef M_PI
@@ -44,7 +47,7 @@ int main(int argc, char **argv){
         
         /* TODO: Make these configurable */
         unsigned num_channels = 2,
-            sample_rate = 44100,
+            sample_rate = 48000,
             sin_frequency = 440,
             num_seconds = 11;