- Reestructuración de ficheros y directorios general
- merge v0.01 --> Añadido fileselector - Añadidas fuentes de Gem y Pure Data - pix2jpg incluído en Gem. Archivos de construcción de Gem modificados. - Añadido fichero ompiling.txt con instrucciones de compilación
This commit is contained in:
parent
c9adfd020b
commit
e85d191b46
3100 changed files with 775434 additions and 3073 deletions
413
fileselector/Makefile
Normal file
413
fileselector/Makefile
Normal file
|
@ -0,0 +1,413 @@
|
|||
## Pd library template version 1.0.11
|
||||
# For instructions on how to use this template, see:
|
||||
# http://puredata.info/docs/developer/MakefileTemplate
|
||||
LIBRARY_NAME = fileselector
|
||||
|
||||
# add your .c source files, one object per file, to the SOURCES
|
||||
# variable, help files will be included automatically, and for GUI
|
||||
# objects, the matching .tcl file too
|
||||
SOURCES = fileselector.c
|
||||
|
||||
# For objects that only build on certain platforms, add those to the SOURCES
|
||||
# line for the right platforms.
|
||||
SOURCES_linux =
|
||||
|
||||
# list all pd objects (i.e. myobject.pd) files here, and their helpfiles will
|
||||
# be included automatically
|
||||
PDOBJECTS = fileselector.pd
|
||||
# example patches and related files, in the 'examples' subfolder
|
||||
EXAMPLES =
|
||||
|
||||
# manuals and related files, in the 'manual' subfolder
|
||||
MANUAL =
|
||||
|
||||
# if you want to include any other files in the source and binary tarballs,
|
||||
# list them here. This can be anything from header files, test patches,
|
||||
# documentation, etc. README.txt and LICENSE.txt are required and therefore
|
||||
# automatically included
|
||||
EXTRA_DIST =
|
||||
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
#
|
||||
# things you might need to edit if you are using other C libraries
|
||||
#
|
||||
#------------------------------------------------------------------------------#
|
||||
|
||||
ALL_CFLAGS = -I"$(PD_INCLUDE)"
|
||||
ALL_LDFLAGS =
|
||||
SHARED_LDFLAGS =
|
||||
ALL_LIBS =
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
#
|
||||
# you shouldn't need to edit anything below here, if we did it right :)
|
||||
#
|
||||
#------------------------------------------------------------------------------#
|
||||
|
||||
# these can be set from outside without (usually) breaking the build
|
||||
CFLAGS = -Wall -W -g
|
||||
LDFLAGS =
|
||||
LIBS =
|
||||
|
||||
# get library version from meta file
|
||||
LIBRARY_VERSION = $(shell sed -n 's|^\#X text [0-9][0-9]* [0-9][0-9]* VERSION \(.*\);|\1|p' $(LIBRARY_NAME)-meta.pd)
|
||||
|
||||
ALL_CFLAGS += -DPD -DVERSION='"$(LIBRARY_VERSION)"'
|
||||
|
||||
PD_INCLUDE = ../pd-0.44-2/src
|
||||
# where to install the library, overridden below depending on platform
|
||||
prefix = ../pd
|
||||
libdir = $(prefix)/lib
|
||||
pkglibdir = ../pd
|
||||
objectsdir = ../pd
|
||||
|
||||
INSTALL = install
|
||||
INSTALL_PROGRAM = $(INSTALL) -p -m 644
|
||||
INSTALL_DATA = $(INSTALL) -p -m 644
|
||||
INSTALL_DIR = $(INSTALL) -p -m 755 -d
|
||||
|
||||
ALLSOURCES := $(SOURCES) $(SOURCES_android) $(SOURCES_cygwin) $(SOURCES_macosx) \
|
||||
$(SOURCES_iphoneos) $(SOURCES_linux) $(SOURCES_windows)
|
||||
|
||||
DISTDIR=$(LIBRARY_NAME)-$(LIBRARY_VERSION)
|
||||
ORIGDIR=pd-$(LIBRARY_NAME:~=)_$(LIBRARY_VERSION)
|
||||
|
||||
UNAME := $(shell uname -s)
|
||||
ifeq ($(UNAME),Darwin)
|
||||
CPU := $(shell uname -p)
|
||||
ifeq ($(CPU),arm) # iPhone/iPod Touch
|
||||
SOURCES += $(SOURCES_iphoneos)
|
||||
EXTENSION = pd_darwin
|
||||
SHARED_EXTENSION = dylib
|
||||
OS = iphoneos
|
||||
PD_PATH = /Applications/Pd-extended.app/Contents/Resources
|
||||
IPHONE_BASE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin
|
||||
CC=$(IPHONE_BASE)/gcc
|
||||
CPP=$(IPHONE_BASE)/cpp
|
||||
CXX=$(IPHONE_BASE)/g++
|
||||
ISYSROOT = -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk
|
||||
IPHONE_CFLAGS = -miphoneos-version-min=3.0 $(ISYSROOT) -arch armv6
|
||||
OPT_CFLAGS = -fast -funroll-loops -fomit-frame-pointer
|
||||
ALL_CFLAGS := $(IPHONE_CFLAGS) $(ALL_CFLAGS)
|
||||
ALL_LDFLAGS += -arch armv6 -bundle -undefined dynamic_lookup $(ISYSROOT)
|
||||
SHARED_LDFLAGS += -arch armv6 -dynamiclib -undefined dynamic_lookup $(ISYSROOT)
|
||||
ALL_LIBS += -lc $(LIBS_iphoneos)
|
||||
STRIP = strip -x
|
||||
DISTBINDIR=$(DISTDIR)-$(OS)
|
||||
else # Mac OS X
|
||||
SOURCES += $(SOURCES_macosx)
|
||||
EXTENSION = pd_darwin
|
||||
SHARED_EXTENSION = dylib
|
||||
OS = macosx
|
||||
PD_PATH = /Applications/Pd-extended.app/Contents/Resources
|
||||
OPT_CFLAGS = -ftree-vectorize -ftree-vectorizer-verbose=2 -fast
|
||||
# build universal 32-bit on 10.4 and 32/64 on newer
|
||||
ifeq ($(shell uname -r | sed 's|\([0-9][0-9]*\)\.[0-9][0-9]*\.[0-9][0-9]*|\1|'), 8)
|
||||
FAT_FLAGS = -arch ppc -arch i386 -mmacosx-version-min=10.4
|
||||
else
|
||||
FAT_FLAGS = -arch ppc -arch i386 -arch x86_64 -mmacosx-version-min=10.4
|
||||
SOURCES += $(SOURCES_iphoneos)
|
||||
endif
|
||||
ALL_CFLAGS += $(FAT_FLAGS) -fPIC -I/sw/include
|
||||
# if the 'pd' binary exists, check the linking against it to aid with stripping
|
||||
BUNDLE_LOADER = $(shell test ! -e $(PD_PATH)/bin/pd || echo -bundle_loader $(PD_PATH)/bin/pd)
|
||||
ALL_LDFLAGS += $(FAT_FLAGS) -bundle $(BUNDLE_LOADER) -undefined dynamic_lookup -L/sw/lib
|
||||
SHARED_LDFLAGS += $(FAT_FLAGS) -dynamiclib -undefined dynamic_lookup \
|
||||
-install_name @loader_path/$(SHARED_LIB) -compatibility_version 1 -current_version 1.0
|
||||
ALL_LIBS += -lc $(LIBS_macosx)
|
||||
STRIP = strip -x
|
||||
DISTBINDIR=$(DISTDIR)-$(OS)
|
||||
# install into ~/Library/Pd on Mac OS X since /usr/local isn't used much
|
||||
pkglibdir=$(HOME)/Library/Pd
|
||||
endif
|
||||
endif
|
||||
# Tho Android uses Linux, we use this fake uname to provide an easy way to
|
||||
# setup all this things needed to cross-compile for Android using the NDK
|
||||
ifeq ($(UNAME),ANDROID)
|
||||
CPU := arm
|
||||
SOURCES += $(SOURCES_android)
|
||||
EXTENSION = pd_linux
|
||||
SHARED_EXTENSION = so
|
||||
OS = android
|
||||
PD_PATH = /usr
|
||||
NDK_BASE := /usr/local/android-ndk
|
||||
NDK_PLATFORM_VERSION := 5
|
||||
NDK_SYSROOT=$(NDK_BASE)/platforms/android-$(NDK_PLATFORM_VERSION)/arch-arm
|
||||
NDK_UNAME := $(shell uname -s | tr '[A-Z]' '[a-z]')
|
||||
NDK_TOOLCHAIN_BASE=$(NDK_BASE)/toolchains/arm-linux-androideabi-4.4.3/prebuilt/$(NDK_UNAME)-x86
|
||||
CC := $(NDK_TOOLCHAIN_BASE)/bin/arm-linux-androideabi-gcc --sysroot=$(NDK_SYSROOT)
|
||||
OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
|
||||
CFLAGS +=
|
||||
LDFLAGS += -rdynamic -shared
|
||||
SHARED_LDFLAGS += -Wl,-soname,$(SHARED_LIB) -shared
|
||||
LIBS += -lc $(LIBS_android)
|
||||
STRIP := $(NDK_TOOLCHAIN_BASE)/bin/arm-linux-androideabi-strip \
|
||||
--strip-unneeded -R .note -R .comment
|
||||
DISTBINDIR=$(DISTDIR)-$(OS)-$(shell uname -m)
|
||||
endif
|
||||
ifeq ($(UNAME),Linux)
|
||||
CPU := $(shell uname -m)
|
||||
SOURCES += $(SOURCES_linux)
|
||||
EXTENSION = pd_linux
|
||||
SHARED_EXTENSION = so
|
||||
OS = linux
|
||||
PD_PATH = /usr
|
||||
OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
|
||||
ALL_CFLAGS += -fPIC
|
||||
ALL_LDFLAGS += -rdynamic -shared -fPIC
|
||||
SHARED_LDFLAGS += -Wl,-soname,$(SHARED_LIB) -shared
|
||||
ALL_LIBS += -lc $(LIBS_linux)
|
||||
STRIP = strip --strip-unneeded -R .note -R .comment
|
||||
DISTBINDIR=$(DISTDIR)-$(OS)-$(shell uname -m)
|
||||
endif
|
||||
ifeq ($(UNAME),GNU)
|
||||
# GNU/Hurd, should work like GNU/Linux for basically all externals
|
||||
CPU := $(shell uname -m)
|
||||
SOURCES += $(SOURCES_linux)
|
||||
EXTENSION = pd_linux
|
||||
SHARED_EXTENSION = so
|
||||
OS = linux
|
||||
PD_PATH = /usr
|
||||
OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
|
||||
ALL_CFLAGS += -fPIC
|
||||
ALL_LDFLAGS += -rdynamic -shared -fPIC
|
||||
SHARED_LDFLAGS += -shared -Wl,-soname,$(SHARED_LIB)
|
||||
ALL_LIBS += -lc $(LIBS_linux)
|
||||
STRIP = strip --strip-unneeded -R .note -R .comment
|
||||
DISTBINDIR=$(DISTDIR)-$(OS)-$(shell uname -m)
|
||||
endif
|
||||
ifeq ($(UNAME),GNU/kFreeBSD)
|
||||
# Debian GNU/kFreeBSD, should work like GNU/Linux for basically all externals
|
||||
CPU := $(shell uname -m)
|
||||
SOURCES += $(SOURCES_linux)
|
||||
EXTENSION = pd_linux
|
||||
SHARED_EXTENSION = so
|
||||
OS = linux
|
||||
PD_PATH = /usr
|
||||
OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
|
||||
ALL_CFLAGS += -fPIC
|
||||
ALL_LDFLAGS += -rdynamic -shared -fPIC
|
||||
SHARED_LDFLAGS += -shared -Wl,-soname,$(SHARED_LIB)
|
||||
ALL_LIBS += -lc $(LIBS_linux)
|
||||
STRIP = strip --strip-unneeded -R .note -R .comment
|
||||
DISTBINDIR=$(DISTDIR)-$(OS)-$(shell uname -m)
|
||||
endif
|
||||
ifeq (CYGWIN,$(findstring CYGWIN,$(UNAME)))
|
||||
CPU := $(shell uname -m)
|
||||
SOURCES += $(SOURCES_cygwin)
|
||||
EXTENSION = dll
|
||||
SHARED_EXTENSION = dll
|
||||
OS = cygwin
|
||||
PD_PATH = $(shell cygpath $$PROGRAMFILES)/pd
|
||||
OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
|
||||
ALL_CFLAGS +=
|
||||
ALL_LDFLAGS += -rdynamic -shared -L"$(PD_PATH)/src" -L"$(PD_PATH)/bin"
|
||||
SHARED_LDFLAGS += -shared -Wl,-soname,$(SHARED_LIB)
|
||||
ALL_LIBS += -lc -lpd $(LIBS_cygwin)
|
||||
STRIP = strip --strip-unneeded -R .note -R .comment
|
||||
DISTBINDIR=$(DISTDIR)-$(OS)
|
||||
endif
|
||||
ifeq (MINGW,$(findstring MINGW,$(UNAME)))
|
||||
CPU := $(shell uname -m)
|
||||
SOURCES += $(SOURCES_windows)
|
||||
EXTENSION = dll
|
||||
SHARED_EXTENSION = dll
|
||||
OS = windows
|
||||
PD_PATH = $(shell cd "$$PROGRAMFILES/pd" && pwd)
|
||||
# MinGW doesn't seem to include cc so force gcc
|
||||
CC=gcc
|
||||
OPT_CFLAGS = -O3 -funroll-loops -fomit-frame-pointer
|
||||
ALL_CFLAGS += -mms-bitfields
|
||||
ALL_LDFLAGS += -s -shared -Wl,--enable-auto-import -L"$(PD_PATH)/src" -L"$(PD_PATH)/bin" -L"$(PD_PATH)/obj"
|
||||
SHARED_LDFLAGS += -shared
|
||||
ALL_LIBS += -lpd -lwsock32 -lkernel32 -luser32 -lgdi32 $(LIBS_windows)
|
||||
STRIP = strip --strip-unneeded -R .note -R .comment
|
||||
DISTBINDIR=$(DISTDIR)-$(OS)
|
||||
endif
|
||||
|
||||
# in case somebody manually set the HELPPATCHES above
|
||||
HELPPATCHES ?= $(SOURCES:.c=-help.pd) $(PDOBJECTS:.pd=-help.pd)
|
||||
|
||||
ALL_CFLAGS := $(ALL_CFLAGS) $(CFLAGS) $(OPT_CFLAGS)
|
||||
ALL_LDFLAGS := $(LDFLAGS) $(ALL_LDFLAGS)
|
||||
ALL_LIBS := $(LIBS) $(ALL_LIBS)
|
||||
|
||||
SHARED_SOURCE ?= $(shell test ! -e lib$(LIBRARY_NAME).c || \
|
||||
echo lib$(LIBRARY_NAME).c )
|
||||
SHARED_HEADER ?= $(shell test ! -e $(LIBRARY_NAME).h || echo $(LIBRARY_NAME).h)
|
||||
SHARED_LIB = $(SHARED_SOURCE:.c=.$(SHARED_EXTENSION))
|
||||
|
||||
.PHONY = install libdir_install single_install install-doc install-examples install-manual clean distclean dist etags $(LIBRARY_NAME)
|
||||
|
||||
all: $(SOURCES:.c=.$(EXTENSION)) $(SHARED_LIB)
|
||||
|
||||
%.o: %.c
|
||||
$(CC) $(ALL_CFLAGS) -o "$*.o" -c "$*.c"
|
||||
|
||||
%.$(EXTENSION): %.o $(SHARED_LIB)
|
||||
$(CC) $(ALL_LDFLAGS) -o "$*.$(EXTENSION)" "$*.o" $(ALL_LIBS) $(SHARED_LIB)
|
||||
chmod a-x "$*.$(EXTENSION)"
|
||||
|
||||
# this links everything into a single binary file
|
||||
$(LIBRARY_NAME): $(SOURCES:.c=.o) $(LIBRARY_NAME).o
|
||||
$(CC) $(ALL_LDFLAGS) -o $(LIBRARY_NAME).$(EXTENSION) $(SOURCES:.c=.o) $(LIBRARY_NAME).o $(ALL_LIBS)
|
||||
chmod a-x $(LIBRARY_NAME).$(EXTENSION)
|
||||
|
||||
$(SHARED_LIB): $(SHARED_SOURCE:.c=.o)
|
||||
$(CC) $(SHARED_LDFLAGS) -o $(SHARED_LIB) $(SHARED_SOURCE:.c=.o) $(LIBS)
|
||||
|
||||
install: libdir_install
|
||||
|
||||
# The meta and help files are explicitly installed to make sure they are
|
||||
# actually there. Those files are not optional, then need to be there.
|
||||
libdir_install: $(SOURCES:.c=.$(EXTENSION)) $(SHARED_LIB) install-doc install-examples install-manual
|
||||
$(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
|
||||
$(INSTALL_DATA) $(LIBRARY_NAME)-meta.pd \
|
||||
$(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
|
||||
test -z "$(strip $(SOURCES))" || (\
|
||||
$(INSTALL_PROGRAM) $(SOURCES:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME) && \
|
||||
$(STRIP) $(addprefix $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/,$(SOURCES:.c=.$(EXTENSION))))
|
||||
test -z "$(strip $(SHARED_LIB))" || \
|
||||
$(INSTALL_DATA) $(SHARED_LIB) \
|
||||
$(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
|
||||
test -z "$(strip $(wildcard $(SOURCES:.c=.tcl)))" || \
|
||||
$(INSTALL_DATA) $(wildcard $(SOURCES:.c=.tcl)) \
|
||||
$(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
|
||||
test -z "$(strip $(PDOBJECTS))" || \
|
||||
$(INSTALL_DATA) $(PDOBJECTS) \
|
||||
$(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
|
||||
|
||||
# install library linked as single binary
|
||||
single_install: $(LIBRARY_NAME) install-doc install-examples install-manual
|
||||
$(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
|
||||
$(INSTALL_PROGRAM) $(LIBRARY_NAME).$(EXTENSION) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
|
||||
$(STRIP) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/$(LIBRARY_NAME).$(EXTENSION)
|
||||
|
||||
install-doc:
|
||||
$(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
|
||||
test -z "$(strip $(SOURCES) $(PDOBJECTS))" || \
|
||||
$(INSTALL_DATA) $(HELPPATCHES) \
|
||||
$(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
|
||||
$(INSTALL_DATA) README.txt $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/README.txt
|
||||
$(INSTALL_DATA) LICENSE.txt $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/LICENSE.txt
|
||||
|
||||
install-examples:
|
||||
test -z "$(strip $(EXAMPLES))" || \
|
||||
$(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/examples && \
|
||||
for file in $(EXAMPLES); do \
|
||||
$(INSTALL_DATA) examples/$$file $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/examples; \
|
||||
done
|
||||
|
||||
install-manual:
|
||||
test -z "$(strip $(MANUAL))" || \
|
||||
$(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/manual && \
|
||||
for file in $(MANUAL); do \
|
||||
$(INSTALL_DATA) manual/$$file $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/manual; \
|
||||
done
|
||||
|
||||
|
||||
clean:
|
||||
-rm -f -- $(SOURCES:.c=.o) $(SOURCES_LIB:.c=.o) $(SHARED_SOURCE:.c=.o)
|
||||
-rm -f -- $(SOURCES:.c=.$(EXTENSION))
|
||||
-rm -f -- $(LIBRARY_NAME).o
|
||||
-rm -f -- $(LIBRARY_NAME).$(EXTENSION)
|
||||
-rm -f -- $(SHARED_LIB)
|
||||
|
||||
distclean: clean
|
||||
-rm -f -- $(DISTBINDIR).tar.gz
|
||||
-rm -rf -- $(DISTBINDIR)
|
||||
-rm -f -- $(DISTDIR).tar.gz
|
||||
-rm -rf -- $(DISTDIR)
|
||||
-rm -f -- $(ORIGDIR).tar.gz
|
||||
-rm -rf -- $(ORIGDIR)
|
||||
|
||||
|
||||
$(DISTBINDIR):
|
||||
$(INSTALL_DIR) $(DISTBINDIR)
|
||||
|
||||
libdir: all $(DISTBINDIR)
|
||||
$(INSTALL_DATA) $(LIBRARY_NAME)-meta.pd $(DISTBINDIR)
|
||||
$(INSTALL_DATA) $(SOURCES) $(SHARED_SOURCE) $(SHARED_HEADER) $(DISTBINDIR)
|
||||
$(INSTALL_DATA) $(HELPPATCHES) $(DISTBINDIR)
|
||||
test -z "$(strip $(EXTRA_DIST))" || \
|
||||
$(INSTALL_DATA) $(EXTRA_DIST) $(DISTBINDIR)
|
||||
# tar --exclude-vcs -czpf $(DISTBINDIR).tar.gz $(DISTBINDIR)
|
||||
|
||||
$(DISTDIR):
|
||||
$(INSTALL_DIR) $(DISTDIR)
|
||||
|
||||
$(ORIGDIR):
|
||||
$(INSTALL_DIR) $(ORIGDIR)
|
||||
|
||||
dist: $(DISTDIR)
|
||||
$(INSTALL_DATA) Makefile $(DISTDIR)
|
||||
$(INSTALL_DATA) README.txt $(DISTDIR)
|
||||
$(INSTALL_DATA) LICENSE.txt $(DISTDIR)
|
||||
$(INSTALL_DATA) $(LIBRARY_NAME)-meta.pd $(DISTDIR)
|
||||
test -z "$(strip $(ALLSOURCES))" || \
|
||||
$(INSTALL_DATA) $(ALLSOURCES) $(DISTDIR)
|
||||
test -z "$(strip $(wildcard $(ALLSOURCES:.c=.tcl)))" || \
|
||||
$(INSTALL_DATA) $(wildcard $(ALLSOURCES:.c=.tcl)) $(DISTDIR)
|
||||
test -z "$(strip $(SHARED_HEADER))" || \
|
||||
$(INSTALL_DATA) $(SHARED_HEADER) $(DISTDIR)
|
||||
test -z "$(strip $(SHARED_SOURCE))" || \
|
||||
$(INSTALL_DATA) $(SHARED_SOURCE) $(DISTDIR)
|
||||
test -z "$(strip $(PDOBJECTS))" || \
|
||||
$(INSTALL_DATA) $(PDOBJECTS) $(DISTDIR)
|
||||
test -z "$(strip $(HELPPATCHES))" || \
|
||||
$(INSTALL_DATA) $(HELPPATCHES) $(DISTDIR)
|
||||
test -z "$(strip $(EXTRA_DIST))" || \
|
||||
$(INSTALL_DATA) $(EXTRA_DIST) $(DISTDIR)
|
||||
test -z "$(strip $(EXAMPLES))" || \
|
||||
$(INSTALL_DIR) $(DISTDIR)/examples && \
|
||||
for file in $(EXAMPLES); do \
|
||||
$(INSTALL_DATA) examples/$$file $(DISTDIR)/examples; \
|
||||
done
|
||||
test -z "$(strip $(MANUAL))" || \
|
||||
$(INSTALL_DIR) $(DISTDIR)/manual && \
|
||||
for file in $(MANUAL); do \
|
||||
$(INSTALL_DATA) manual/$$file $(DISTDIR)/manual; \
|
||||
done
|
||||
tar --exclude-vcs -czpf $(DISTDIR).tar.gz $(DISTDIR)
|
||||
|
||||
# make a Debian source package
|
||||
dpkg-source:
|
||||
debclean
|
||||
make distclean dist
|
||||
mv $(DISTDIR) $(ORIGDIR)
|
||||
tar --exclude-vcs -czpf ../$(ORIGDIR).orig.tar.gz $(ORIGDIR)
|
||||
rm -f -- $(DISTDIR).tar.gz
|
||||
rm -rf -- $(DISTDIR) $(ORIGDIR)
|
||||
cd .. && dpkg-source -b $(LIBRARY_NAME)
|
||||
|
||||
etags:
|
||||
etags *.h $(SOURCES) ../../pd/src/*.[ch] /usr/include/*.h /usr/include/*/*.h
|
||||
|
||||
showsetup:
|
||||
@echo "CC: $(CC)"
|
||||
@echo "CFLAGS: $(CFLAGS)"
|
||||
@echo "LDFLAGS: $(LDFLAGS)"
|
||||
@echo "LIBS: $(LIBS)"
|
||||
@echo "ALL_CFLAGS: $(ALL_CFLAGS)"
|
||||
@echo "ALL_LDFLAGS: $(ALL_LDFLAGS)"
|
||||
@echo "ALL_LIBS: $(ALL_LIBS)"
|
||||
@echo "PD_INCLUDE: $(PD_INCLUDE)"
|
||||
@echo "PD_PATH: $(PD_PATH)"
|
||||
@echo "objectsdir: $(objectsdir)"
|
||||
@echo "LIBRARY_NAME: $(LIBRARY_NAME)"
|
||||
@echo "LIBRARY_VERSION: $(LIBRARY_VERSION)"
|
||||
@echo "SOURCES: $(SOURCES)"
|
||||
@echo "SHARED_HEADER: $(SHARED_HEADER)"
|
||||
@echo "SHARED_SOURCE: $(SHARED_SOURCE)"
|
||||
@echo "SHARED_LIB: $(SHARED_LIB)"
|
||||
@echo "PDOBJECTS: $(PDOBJECTS)"
|
||||
@echo "ALLSOURCES: $(ALLSOURCES)"
|
||||
@echo "ALLSOURCES TCL: $(wildcard $(ALLSOURCES:.c=.tcl))"
|
||||
@echo "UNAME: $(UNAME)"
|
||||
@echo "CPU: $(CPU)"
|
||||
@echo "pkglibdir: $(pkglibdir)"
|
||||
@echo "DISTDIR: $(DISTDIR)"
|
||||
@echo "ORIGDIR: $(ORIGDIR)"
|
21
fileselector/fileselector-help.pd
Normal file
21
fileselector/fileselector-help.pd
Normal file
|
@ -0,0 +1,21 @@
|
|||
#N canvas 831 156 546 485 10;
|
||||
#X msg 19 73 bang;
|
||||
#X obj 48 440 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
|
||||
-1;
|
||||
#X obj 67 438 print;
|
||||
#X obj 67 417 fileselector;
|
||||
#X msg 65 40 folder 2;
|
||||
#X msg 78 65 file 1;
|
||||
#X msg 48 16 set /home/santi/PMS/media;
|
||||
#X msg 89 97 type 35;
|
||||
#X msg 116 134 type 55;
|
||||
#X msg 140 168 type 80;
|
||||
#X connect 0 0 3 0;
|
||||
#X connect 3 0 1 0;
|
||||
#X connect 3 0 2 0;
|
||||
#X connect 4 0 3 0;
|
||||
#X connect 5 0 3 0;
|
||||
#X connect 6 0 3 0;
|
||||
#X connect 7 0 3 0;
|
||||
#X connect 8 0 3 0;
|
||||
#X connect 9 0 3 0;
|
7
fileselector/fileselector-meta.pd
Executable file
7
fileselector/fileselector-meta.pd
Executable file
|
@ -0,0 +1,7 @@
|
|||
#N canvas 13 117 200 200 10;
|
||||
#N canvas 625 218 420 300 META 1;
|
||||
#X text 10 10 VERSION 0.0.1;
|
||||
#X text 10 25 AUTHOR Santiago Noreña belfegor@gmail.com;
|
||||
#X text 9 40 NAME fileselector;
|
||||
#X text 9 56 LICENSE GPL;
|
||||
#X restore 10 10 pd META;
|
194
fileselector/fileselector.c
Normal file
194
fileselector/fileselector.c
Normal file
|
@ -0,0 +1,194 @@
|
|||
/* --------------------------------------------------------------------------*/
|
||||
/* */
|
||||
/* object for getting file listings using wildcard patterns */
|
||||
/* Written by Hans-Christoph Steiner <hans@eds.org> */
|
||||
/* */
|
||||
/* Copyright (c) 2006 Hans-Christoph Steiner */
|
||||
/* */
|
||||
/* This program is free software; you can redistribute it and/or */
|
||||
/* modify it under the terms of the GNU General Public License */
|
||||
/* as published by the Free Software Foundation; either version 3 */
|
||||
/* of the License, or (at your option) any later version. */
|
||||
/* */
|
||||
/* See file LICENSE for further informations on licensing terms. */
|
||||
/* */
|
||||
/* This program is distributed in the hope that it will be useful, */
|
||||
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
|
||||
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
|
||||
/* GNU General Public License for more details. */
|
||||
/* */
|
||||
/* You should have received a copy of the GNU General Public License */
|
||||
/* along with this program; if not, write to the Free Software Foundation, */
|
||||
/* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
/* */
|
||||
/* --------------------------------------------------------------------------*/
|
||||
|
||||
#include <m_pd.h>
|
||||
|
||||
#ifdef _WIN32
|
||||
#define _WIN32_WINNT 0x0400
|
||||
#include <windows.h>
|
||||
#else
|
||||
#include <stdlib.h>
|
||||
#include <glob.h>
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
//static char *version = "$Revision: 0.01 $";
|
||||
|
||||
#define DEBUG(x)
|
||||
//#define DEBUG(x) x
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* CLASS DEF
|
||||
*/
|
||||
static t_class *fileselector_class;
|
||||
|
||||
typedef struct _fileselector {
|
||||
t_object x_obj;
|
||||
t_symbol* x_pattern;
|
||||
int x_folder;
|
||||
int x_file;
|
||||
int x_type;
|
||||
t_outlet *x_out;
|
||||
} t_fileselector;
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* IMPLEMENTATION
|
||||
*/
|
||||
|
||||
static void fileselector_output(t_fileselector* x)
|
||||
{
|
||||
if (strlen(x->x_pattern->s_name) < 6)
|
||||
{
|
||||
post("fileselector: Set path first");
|
||||
return;
|
||||
}
|
||||
char path[FILENAME_MAX] = "";
|
||||
glob_t glob_buffer;
|
||||
unsigned int i;
|
||||
strncpy(path, x->x_pattern->s_name, FILENAME_MAX);
|
||||
if(sys_isabsolutepath(path)) {
|
||||
if(x->x_type < 25) // Make the path video
|
||||
{
|
||||
return;
|
||||
}
|
||||
if((x->x_type > 24) && (x->x_type<50)) // Make the path video
|
||||
{
|
||||
strncat(path,"/video/*",8);
|
||||
glob_t glob_video;
|
||||
switch(glob(path, GLOB_TILDE, NULL, &glob_video))
|
||||
{
|
||||
case GLOB_NOSPACE:
|
||||
pd_error(x,"[fileselector] out of memory for \"%s\"",path);
|
||||
break;
|
||||
# ifdef GLOB_ABORTED
|
||||
case GLOB_ABORTED:
|
||||
pd_error(x,"[fileselector] aborted \"%s\"",path);
|
||||
break;
|
||||
# endif
|
||||
# ifdef GLOB_NOMATCH
|
||||
case GLOB_NOMATCH:
|
||||
pd_error(x,"[fileselector] nothing found for %s ",path);
|
||||
break;
|
||||
# endif
|
||||
}
|
||||
i = x->x_folder;
|
||||
if (i < glob_video.gl_pathc)
|
||||
{
|
||||
strncpy(path, glob_video.gl_pathv[i],strnlen(glob_video.gl_pathv[i],FILENAME_MAX));
|
||||
strncat(path, "/*", 2);
|
||||
globfree(&glob_video);
|
||||
}
|
||||
else
|
||||
{
|
||||
post("fileselector: folder is greater than the number of folders");
|
||||
globfree(&glob_video);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if((x->x_type > 49) && (x->x_type<75)) // Make the path image
|
||||
{
|
||||
strncat(path,"/image/*",8);
|
||||
}
|
||||
if((x->x_type > 74) && (x->x_type<100)) // Make the path image
|
||||
{
|
||||
strncat(path,"/fonts/*",8);
|
||||
}
|
||||
switch(glob(path, GLOB_TILDE, NULL,&glob_buffer))
|
||||
{
|
||||
case GLOB_NOSPACE:
|
||||
pd_error(x,"[fileselector] out of memory for \"%s\"",path);
|
||||
break;
|
||||
# ifdef GLOB_ABORTED
|
||||
case GLOB_ABORTED:
|
||||
pd_error(x,"[fileselector] aborted \"%s\"",path);
|
||||
break;
|
||||
# endif
|
||||
# ifdef GLOB_NOMATCH
|
||||
case GLOB_NOMATCH:
|
||||
pd_error(x,"[fileselector] nothing found for \"%s\"",path);
|
||||
break;
|
||||
# endif
|
||||
}
|
||||
i = x->x_file;
|
||||
if (i < glob_buffer.gl_pathc)
|
||||
{
|
||||
outlet_symbol(x->x_out, gensym(glob_buffer.gl_pathv[i]));
|
||||
}
|
||||
}
|
||||
globfree( &(glob_buffer) );
|
||||
}
|
||||
|
||||
static void fileselector_set(t_fileselector* x, t_symbol *s)
|
||||
{
|
||||
x->x_pattern = s;
|
||||
}
|
||||
|
||||
static void fileselector_folder(t_fileselector* x, t_floatarg f)
|
||||
{
|
||||
x->x_folder = f;
|
||||
return;
|
||||
}
|
||||
|
||||
static void fileselector_file(t_fileselector* x, t_floatarg f)
|
||||
{
|
||||
x->x_file = f;
|
||||
return;
|
||||
}
|
||||
|
||||
static void fileselector_type(t_fileselector* x, t_floatarg f)
|
||||
{
|
||||
x->x_type = f;
|
||||
return;
|
||||
}
|
||||
|
||||
static void *fileselector_new()
|
||||
{
|
||||
t_fileselector *x = (t_fileselector *)pd_new(fileselector_class);
|
||||
x->x_out = outlet_new((t_object *)x, &s_symbol);
|
||||
x->x_folder = 0;
|
||||
x->x_file = 0;
|
||||
x->x_type = 0;
|
||||
x->x_pattern = gensym("empty");
|
||||
return (x);
|
||||
}
|
||||
|
||||
void fileselector_setup(void)
|
||||
{
|
||||
fileselector_class = class_new(gensym("fileselector"),(t_newmethod)fileselector_new,0,sizeof(t_fileselector),0,A_DEFSYMBOL,A_DEFFLOAT,A_DEFFLOAT,A_DEFFLOAT, 0);
|
||||
/* add inlet datatype methods */
|
||||
class_addbang(fileselector_class,(t_method) fileselector_output);
|
||||
// class_addsymbol(fileselector_class,(t_method) fileselector_symbol);
|
||||
/* add inlet message methods */
|
||||
class_addmethod(fileselector_class,(t_method)fileselector_set,gensym("set"),A_DEFSYMBOL, 0);
|
||||
// add inlet folder
|
||||
class_addmethod(fileselector_class,(t_method)fileselector_folder,gensym("folder"),A_FLOAT, 0);
|
||||
// add inlet file
|
||||
class_addmethod(fileselector_class,(t_method)fileselector_file,gensym("file"),A_FLOAT, 0);
|
||||
// add inlet type
|
||||
class_addmethod(fileselector_class,(t_method)fileselector_type,gensym("type"),A_FLOAT, 0);
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue