From: Jerome St-Louis Date: Sat, 12 Jul 2014 04:00:42 +0000 (-0400) Subject: tarball: Building and installing EcereAudio X-Git-Tag: 0.44.10PR1~20 X-Git-Url: https://ecere.com/cgi-bin/gitweb.cgi?p=sdk;a=commitdiff_plain;h=665ee4faf83d018fc7c17aac6f0dec98965d4db8 tarball: Building and installing EcereAudio --- diff --git a/Makefile b/Makefile index d905252..4da9f82 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: all clean realclean distclean emptyoutput prepinstall actualinstall install copyonlyinstall uninstall troubleshoot outputdirs bootstrap deps ecere ecerecom ecerevanilla ear compiler prepbinaries epj2make ide documentor eda prepcodeguard codeguard fixprecompile cleantarget pots installer regenbootstrap updatebootstrap update_ecere update_libec update_ecp update_ecc update_ecs +.PHONY: all clean realclean distclean emptyoutput prepinstall actualinstall install copyonlyinstall uninstall troubleshoot outputdirs bootstrap deps ecere ecerecom ecerevanilla ear compiler prepbinaries epj2make ide documentor eda prepcodeguard codeguard fixprecompile cleantarget pots installer regenbootstrap updatebootstrap update_ecere update_libec update_ecp update_ecc update_ecs ecereaudio ifneq "$V" "1" .SILENT: endif @@ -18,6 +18,16 @@ XBOOT := $(if $(CROSS_TARGET),GCC_PREFIX= TARGET_PLATFORM=$(HOST_PLATFORM) PLATF LIBVER := .0.44 +ifneq "$ECERE_AUDIO" "n" +ifdef WINDOWS_TARGET +ECERE_AUDIO := y +endif + +ifdef LINUX_TARGET +ECERE_AUDIO := y +endif +endif + ifdef WINDOWS_HOST HOST_SOV := $(HOST_SO) else @@ -153,7 +163,7 @@ XOBJDIR := obj$(OBJALT)/ XOBJBINDIR := $(OBJDIR)$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/bin/ XOBJLIBDIR := $(OBJDIR)$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/lib/ -all: prepbinaries ide epj2make documentor eda codeguard +all: prepbinaries ide epj2make documentor eda codeguard ecereaudio @$(call echo,The Ecere SDK is fully built.) outputdirs: @@ -289,6 +299,12 @@ epj2make: prepbinaries @$(call echo,Building epj2make...) cd epj2make && $(MAKE) +ecereaudio: prepbinaries +ifdef ECERE_AUDIO + @$(call echo,Building EcereAudio...) + cd extras/audio && $(MAKE) +endif + ide: prepbinaries @$(call echo,Building IDE...) cd ide && $(MAKE) @@ -340,6 +356,9 @@ emptyoutput: outputdirs ifdef EDASQLiteCipher $(call rmq,$(SODESTDIR)$(LP)EDASQLiteCipher$(SO)) endif +ifdef ECERE_AUDIO + $(call rmq,$(SODESTDIR)$(LP)EcereAudio$(SO)) +endif ifdef LINUX_TARGET $(call rmq,$(SODESTDIR)$(LP)ecere$(SO).0) $(call rmq,$(SODESTDIR)$(LP)ecereCOM$(SO).0) @@ -349,6 +368,9 @@ ifdef LINUX_TARGET ifdef EDASQLiteCipher $(call rmq,$(SODESTDIR)$(LP)EDASQLiteCipher$(SO).0) endif +ifdef ECERE_AUDIO + $(call rmq,$(SODESTDIR)$(LP)EcereAudio$(SO).0) +endif $(call rmq,$(SODESTDIR)$(LP)ecere$(SOV)) $(call rmq,$(SODESTDIR)$(LP)ecereCOM$(SOV)) $(call rmq,$(SODESTDIR)$(LP)ec$(SOV)) @@ -357,6 +379,9 @@ endif ifdef EDASQLiteCipher $(call rmq,$(SODESTDIR)$(LP)EDASQLiteCipher$(SOV)) endif +ifdef ECERE_AUDIO + $(call rmq,$(SODESTDIR)$(LP)EcereAudio$(SOV)) +endif endif $(call rmq,$(OBJBINDIR)ear$(E)) $(call rmq,$(OBJBINDIR)ecc$(E)) @@ -365,7 +390,7 @@ endif $(call rmq,$(OBJBINDIR)epj2make$(E)) $(call rmq,$(OBJBINDIR)ide$(E)) $(call rmq,$(OBJBINDIR)documentor$(E)) -ifdef EDASQLiteCipher +ifdef CodeGuard $(call rmq,$(OBJBINDIR)CodeGuard$(E)) endif @@ -461,6 +486,10 @@ BINARIES = \ eda/libeda/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDA$(SOV) \ eda/drivers/sqlite/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLite$(SOV) +ifdef ECERE_AUDIO +BINARIES += extras/audio/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EcereAudio$(SOV) +endif + ifdef CodeGuard BINARIES += codeGuard/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/CodeGuard$(E) endif @@ -481,6 +510,9 @@ ifdef WINDOWS_TARGET $(call cpq,compiler/libec/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ec$(SO),$(OBJBINDIR)) $(call cpq,eda/libeda/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDA$(SO),$(OBJBINDIR)) $(call cpq,eda/drivers/sqlite/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLite$(SO),$(OBJBINDIR)) +ifdef ECERE_AUDIO + $(call cpq,extras/audio/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EcereAudio$(SO),$(OBJBINDIR)) +endif ifdef EDASQLiteCipher $(call cpq,eda/drivers/sqliteCipher/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLiteCipher$(SO),$(OBJBINDIR)) endif @@ -492,6 +524,9 @@ ifdef LINUX_TARGET $(call cpq,compiler/libec/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ec$(SOV),$(OBJLIBDIR)) $(call cpq,eda/libeda/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDA$(SOV),$(OBJLIBDIR)) $(call cpq,eda/drivers/sqlite/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLite$(SOV),$(OBJLIBDIR)) +ifdef ECERE_AUDIO + $(call cpq,extras/audio/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EcereAudio$(SOV),$(OBJLIBDIR)) +endif ifdef EDASQLiteCipher $(call cpq,eda/drivers/sqliteCipher/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLiteCipher$(SOV),$(OBJLIBDIR)) endif @@ -520,6 +555,9 @@ ifndef LINUX_TARGET $(call cpq,compiler/libec/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ec$(SO),$(OBJLIBDIR)) $(call cpq,eda/libeda/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDA$(SO),$(OBJLIBDIR)) $(call cpq,eda/drivers/sqlite/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLite$(SO),$(OBJLIBDIR)) +ifdef ECERE_AUDIO + $(call cpq,extras/audio/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EcereAudio$(SO),$(OBJLIBDIR)) +endif ifdef EDASQLiteCipher $(call cpq,eda/drivers/sqliteCipher/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLiteCipher$(SO),$(OBJLIBDIR)) endif @@ -558,6 +596,9 @@ ifdef WINDOWS_TARGET ifdef EDASQLiteCipher $(call cpq,$(OBJBINDIR)$(LP)EDASQLiteCipher$(SO),"$(DESTLIBDIR)/") endif +ifdef ECERE_AUDIO + $(call cpq,$(OBJBINDIR)$(LP)EcereAudio$(SO),"$(DESTLIBDIR)/") +endif $(call cpq,$(OBJBINDIR)ide$(E),"$(BINDIR)/") $(call cpq,$(OBJBINDIR)ear$(E),"$(BINDIR)/") $(call cpq,$(OBJBINDIR)ecc$(E),"$(BINDIR)/") @@ -584,6 +625,9 @@ ifdef OSX_TARGET ifdef EDASQLiteCipher install $(OBJLIBDIR)$(LP)EDASQLiteCipher$(SO) $(DESTLIBDIR)/ endif +ifdef ECERE_AUDIO + install $(OBJBINDIR)$(LP)EcereAudio$(SO) $(DESTLIBDIR)/ +endif install $(OBJBINDIR)ide$(E) $(BINDIR)/ install $(OBJBINDIR)ear$(E) $(BINDIR)/ install $(OBJBINDIR)ecc$(E) $(BINDIR)/ @@ -622,6 +666,9 @@ ifdef LINUX_TARGET ifdef EDASQLiteCipher install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDASQLiteCipher$(SOV) $(DESTLIBDIR)/ec/$(LP)EDASQLiteCipher$(SOV) endif +ifdef ECERE_AUDIO + install $(INSTALL_FLAGS) $(OBJBINDIR)$(LP)EcereAudio$(SO) $(DESTLIBDIR)/ec/$(LP)EcereAudio$(SOV) +endif ln -sf $(LP)ecere$(SOV) $(DESTLIBDIR)/$(LP)ecere$(SO).0 ln -sf $(LP)ecereCOM$(SOV) $(DESTLIBDIR)/$(LP)ecereCOM$(SO).0 ln -sf $(LP)ec$(SOV) $(DESTLIBDIR)/ec/$(LP)ec$(SO).0 @@ -630,6 +677,9 @@ endif ifdef EDASQLiteCipher ln -sf $(LP)EDASQLiteCipher$(SOV) $(DESTLIBDIR)/ec/$(LP)EDASQLiteCipher$(SO).0 endif +ifdef ECERE_AUDIO + ln -sf $(LP)EcereAudio$(SOV) $(DESTLIBDIR)/ec/$(LP)EcereAudio$(SO).0 +endif ln -sf $(LP)ecere$(SOV) $(DESTLIBDIR)/$(LP)ecere$(SO) ln -sf $(LP)ecereCOM$(SOV) $(DESTLIBDIR)/$(LP)ecereCOM$(SO) ln -sf $(LP)ec$(SOV) $(DESTLIBDIR)/ec/$(LP)ec$(SO) @@ -654,6 +704,9 @@ ifdef EDASQLiteCipher install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDASQLiteCipher$(SO) $(DESTLIBDIR)/$(LP)EDASQLiteCipher$(SO) endif endif +ifdef ECERE_AUDIO + install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EcereAudio$(SO) $(DESTLIBDIR)/$(LP)EcereAudio$(SO) +endif install $(INSTALL_FLAGS) $(OBJBINDIR)ide$(E) $(BINDIR)/ide$(E) install $(INSTALL_FLAGS) $(OBJBINDIR)ear$(E) $(BINDIR)/ear$(E) install $(INSTALL_FLAGS) $(OBJBINDIR)ecc$(E) $(BINDIR)/ecc$(E) @@ -701,6 +754,8 @@ ifdef DEBIAN_PACKAGE ln -sf ../libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/libeda0/ mkdir -p $(DESTDIR)$(prefix)/share/doc/libedasqlite0 ln -sf ../libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/libedasqlite0/ + mkdir -p $(DESTDIR)$(prefix)/share/doc/libecereaudio0 + ln -sf ../libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/libecereaudio/ endif endif endif @@ -714,6 +769,9 @@ uninstall: ifdef EDASQLiteCipher $(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLiteCipher$(SO)") endif +ifdef ECERE_AUDIO + $(call rmq,"$(DESTLIBDIR)/$(LP)EcereAudio$(SO)") +endif $(call rmq,"$(BINDIR)/ide$(E)") $(call rmq,"$(BINDIR)/ear$(E)") $(call rmq,"$(BINDIR)/ecc$(E)") @@ -738,6 +796,7 @@ ifdef LINUX_TARGET ifdef EDASQLiteCipher $(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLiteCipher$(SO).0") endif + $(call rmq,"$(DESTLIBDIR)/$(LP)EcereaAudio$(SO).0") $(call rmq,"$(DESTLIBDIR)/$(LP)ecere$(SOV)") $(call rmq,"$(DESTLIBDIR)/$(LP)ecereCOM$(SOV)") $(call rmq,"$(DESTLIBDIR)/$(LP)ec$(SOV)") @@ -746,6 +805,9 @@ endif ifdef EDASQLiteCipher $(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLiteCipher$(SOV)") endif +ifdef ECERE_AUDIO + $(call rmq,"$(DESTLIBDIR)/$(LP)EcereAudio$(SOV)") +endif $(call rmq,"$(DESTDIR)$(prefix)/share/pixmaps/ecere.png") $(call rmq,"$(DESTDIR)$(prefix)/share/applications/ecere.desktop") endif diff --git a/extras/audio/EcereAudio.epj b/extras/audio/EcereAudio.epj index 52dcfe4..47d0f0e 100644 --- a/extras/audio/EcereAudio.epj +++ b/extras/audio/EcereAudio.epj @@ -1,6 +1,7 @@ { "Version" : 0.2, "ModuleName" : "EcereAudio", + "ModuleVersion" : "0.44", "Options" : { "Warnings" : "All", "TargetType" : "SharedLibrary", diff --git a/extras/audio/Makefile b/extras/audio/Makefile new file mode 100644 index 0000000..9e2b91e --- /dev/null +++ b/extras/audio/Makefile @@ -0,0 +1,241 @@ +.PHONY: all objdir cleantarget clean realclean distclean + +# CORE VARIABLES + +MODULE := EcereAudio +VERSION := 0.44 +CONFIG := release +ifndef COMPILER +COMPILER := default +endif + +TARGET_TYPE = sharedlib + +# FLAGS + +ECFLAGS = +ifndef DEBIAN_PACKAGE +CFLAGS = +LDFLAGS = +endif +PRJ_CFLAGS = +CECFLAGS = +OFLAGS = +LIBS = + +ifdef DEBUG +NOSTRIP := y +endif + +CONSOLE = -mwindows + +# INCLUDES + +_CF_DIR = ../../ + +include $(_CF_DIR)crossplatform.mk +include $(_CF_DIR)default.cf + +# POST-INCLUDES VARIABLES + +OBJ = obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ + +RES = + +TARGET = obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EcereAudio$(SO)$(VER) + +_ECSOURCES = \ + alsa.ec \ + audio.ec \ + dsound.ec \ + mixer.ec + +ECSOURCES = $(call shwspace,$(_ECSOURCES)) + +_COBJECTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(C),$(notdir $(_ECSOURCES)))) + +_SYMBOLS = $(addprefix $(OBJ),$(patsubst %.ec,%$(S),$(notdir $(_ECSOURCES)))) + +_IMPORTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(I),$(notdir $(_ECSOURCES)))) + +_ECOBJECTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(O),$(notdir $(_ECSOURCES)))) + +_BOWLS = $(addprefix $(OBJ),$(patsubst %.ec,%$(B),$(notdir $(_ECSOURCES)))) + +COBJECTS = $(call shwspace,$(_COBJECTS)) + +SYMBOLS = $(call shwspace,$(_SYMBOLS)) + +IMPORTS = $(call shwspace,$(_IMPORTS)) + +ECOBJECTS = $(call shwspace,$(_ECOBJECTS)) + +BOWLS = $(call shwspace,$(_BOWLS)) + +OBJECTS = $(ECOBJECTS) $(OBJ)$(MODULE).main$(O) + +SOURCES = $(ECSOURCES) + +RESOURCES = + +LIBS += $(SHAREDLIB) $(EXECUTABLE) $(LINKOPT) + +ifndef STATIC_LIBRARY_TARGET +LIBS += \ + $(call _L,ecere) +endif + +PRJ_CFLAGS += \ + $(if $(WINDOWS_TARGET), \ + -I../../deps/DirectX-9.0/include,) \ + $(if $(DEBUG), -g, -O2 -ffast-math) $(FPIC) -Wall -DREPOSITORY_VERSION="\"$(REPOSITORY_VER)\"" \ + -I../../deps/DirectX-9.0/include + +ECFLAGS += -module $(MODULE) +# PLATFORM-SPECIFIC OPTIONS + +ifdef WINDOWS_TARGET + +ifndef STATIC_LIBRARY_TARGET +LIBS += \ + $(call _L,winmm) \ + $(call _L,dsound) \ + $(call _L,dxguid) \ + $(call _L,uuid) +endif + +else +ifdef LINUX_TARGET + +ifndef STATIC_LIBRARY_TARGET +LIBS += \ + $(call _L,asound) +endif + +endif +endif + +CECFLAGS += -cpp $(_CPP) + +ifndef STATIC_LIBRARY_TARGET +OFLAGS += \ + -L../../obj/$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/bin \ + -L../../obj/$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/lib +endif + +# TARGETS + +all: objdir $(TARGET) + +objdir: + $(if $(wildcard $(OBJ)),,$(call mkdirq,$(OBJ))) + $(if $(ECERE_SDK_SRC),$(if $(wildcard $(call escspace,$(ECERE_SDK_SRC)/crossplatform.mk)),,@$(call echo,Ecere SDK Source Warning: The value of ECERE_SDK_SRC is pointing to an incorrect ($(ECERE_SDK_SRC)) location.)),) + $(if $(ECERE_SDK_SRC),,$(if $(ECP_DEBUG)$(ECC_DEBUG)$(ECS_DEBUG),@$(call echo,ECC Debug Warning: Please define ECERE_SDK_SRC before using ECP_DEBUG, ECC_DEBUG or ECS_DEBUG),)) + +$(OBJ)$(MODULE).main.ec: $(SYMBOLS) $(COBJECTS) + @$(call rmq,$(OBJ)symbols.lst) + @$(call touch,$(OBJ)symbols.lst) + @$(call echo,$(SYMBOLS)) >> $(OBJ)symbols.lst + @$(call echo,$(IMPORTS)) >> $(OBJ)symbols.lst + $(ECS) $(ARCH_FLAGS) $(ECSLIBOPT) @$(OBJ)symbols.lst -symbols obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX) -o $(call quote_path,$@) + +$(OBJ)$(MODULE).main.c: $(OBJ)$(MODULE).main.ec + $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(OBJ)$(MODULE).main.ec -o $(OBJ)$(MODULE).main.sym -symbols $(OBJ) + $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)$(MODULE).main.ec -o $(call quote_path,$@) -symbols $(OBJ) + +$(SYMBOLS): | objdir +$(OBJECTS): | objdir +$(TARGET): $(SOURCES) $(RESOURCES) $(SYMBOLS) $(OBJECTS) | objdir + @$(call rmq,$(OBJ)objects.lst) + @$(call touch,$(OBJ)objects.lst) + @$(call echo,$(OBJ)$(MODULE).main$(O)) >> $(OBJ)objects.lst + @$(call echo,$(ECOBJECTS)) >> $(OBJ)objects.lst +ifndef STATIC_LIBRARY_TARGET + $(CC) $(OFLAGS) @$(OBJ)objects.lst $(LIBS) -o $(TARGET) $(INSTALLNAME) +ifndef NOSTRIP + $(STRIP) $(STRIPOPT) $(TARGET) +endif +else + $(AR) rcs $(TARGET) @$(OBJ)objects.lst $(LIBS) +endif +ifdef SHARED_LIBRARY_TARGET +ifdef LINUX_TARGET +ifdef LINUX_HOST + $(if $(basename $(VER)),ln -sf $(LP)$(MODULE)$(SO)$(VER) $(OBJ)$(LP)$(MODULE)$(SO)$(basename $(VER)),) + $(if $(VER),ln -sf $(LP)$(MODULE)$(SO)$(VER) $(OBJ)$(LP)$(MODULE)$(SO),) +endif +endif +endif + +# SYMBOL RULES + +$(OBJ)alsa.sym: alsa.ec + $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(call quote_path,alsa.ec) -o $(call quote_path,$@) + +$(OBJ)audio.sym: audio.ec + $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(call quote_path,audio.ec) -o $(call quote_path,$@) + +$(OBJ)dsound.sym: dsound.ec + $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(call quote_path,dsound.ec) -o $(call quote_path,$@) + +$(OBJ)mixer.sym: mixer.ec + $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(call quote_path,mixer.ec) -o $(call quote_path,$@) + +# C OBJECT RULES + +$(OBJ)alsa.c: alsa.ec $(OBJ)alsa.sym | $(SYMBOLS) + $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,alsa.ec) -o $(call quote_path,$@) -symbols $(OBJ) + +$(OBJ)audio.c: audio.ec $(OBJ)audio.sym | $(SYMBOLS) + $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,audio.ec) -o $(call quote_path,$@) -symbols $(OBJ) + +$(OBJ)dsound.c: dsound.ec $(OBJ)dsound.sym | $(SYMBOLS) + $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,dsound.ec) -o $(call quote_path,$@) -symbols $(OBJ) + +$(OBJ)mixer.c: mixer.ec $(OBJ)mixer.sym | $(SYMBOLS) + $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,mixer.ec) -o $(call quote_path,$@) -symbols $(OBJ) + +# OBJECT RULES + +$(OBJ)alsa.o: $(OBJ)alsa.c + $(CC) $(CFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,$(OBJ)alsa.c) -o $(call quote_path,$@) + +$(OBJ)audio.o: $(OBJ)audio.c + $(CC) $(CFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,$(OBJ)audio.c) -o $(call quote_path,$@) + +$(OBJ)dsound.o: $(OBJ)dsound.c + $(CC) $(CFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,$(OBJ)dsound.c) -o $(call quote_path,$@) + +$(OBJ)mixer.o: $(OBJ)mixer.c + $(CC) $(CFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,$(OBJ)mixer.c) -o $(call quote_path,$@) + +$(OBJ)$(MODULE).main$(O): $(OBJ)$(MODULE).main.c + $(CC) $(CFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)$(MODULE).main.c -o $(call quote_path,$@) + +cleantarget: objdir + $(call rmq,$(OBJ)$(MODULE).main.o $(OBJ)$(MODULE).main.c $(OBJ)$(MODULE).main.ec $(OBJ)$(MODULE).main$(I) $(OBJ)$(MODULE).main$(S)) + $(call rmq,$(OBJ)symbols.lst) + $(call rmq,$(OBJ)objects.lst) + $(call rmq,$(TARGET)) +ifdef SHARED_LIBRARY_TARGET +ifdef LINUX_TARGET +ifdef LINUX_HOST + $(call rmq,$(OBJ)$(LP)$(MODULE)$(SO)$(basename $(VER))) + $(call rmq,$(OBJ)$(LP)$(MODULE)$(SO)) +endif +endif +endif + +clean: cleantarget + $(call rmq,$(_OBJECTS)) + $(call rmq,$(_ECOBJECTS)) + $(call rmq,$(_COBJECTS)) + $(call rmq,$(_BOWLS)) + $(call rmq,$(_IMPORTS)) + $(call rmq,$(_SYMBOLS)) + +realclean: cleantarget + $(call rmrq,$(OBJ)) + +distclean: cleantarget + $(call rmrq,obj/)