aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Formula
diff options
context:
space:
mode:
authorBrian Palmer2014-12-02 18:27:56 -0700
committerMike McQuaid2014-12-11 09:20:19 +0000
commit241d4d47c8ad419d2159179a684dfafb2fd9fbd6 (patch)
treefafd4c4cc8a5744265097db7cde604153b72f63b /Library/Formula
parent09d83bba346965d92d23047f0ba67de82e45f4fd (diff)
downloadhomebrew-241d4d47c8ad419d2159179a684dfafb2fd9fbd6.tar.bz2
open-zwave 1.2.919 (new formula)
Closes #34633.
Diffstat (limited to 'Library/Formula')
-rw-r--r--Library/Formula/open-zwave.rb124
1 files changed, 124 insertions, 0 deletions
diff --git a/Library/Formula/open-zwave.rb b/Library/Formula/open-zwave.rb
new file mode 100644
index 000000000..c3a148c5f
--- /dev/null
+++ b/Library/Formula/open-zwave.rb
@@ -0,0 +1,124 @@
+require "formula"
+
+class OpenZwave < Formula
+ homepage "http://www.openzwave.com"
+ url "http://old.openzwave.com/downloads/openzwave-1.2.919.tar.gz"
+ sha1 "514fa8a9e8468d264a6e4fffc377f2e18368ef41"
+
+ # Patch to build a .dylib instead of a .so
+ # This patch has been merged upstream and can be removed after the next release:
+ # https://code.google.com/p/open-zwave/source/detail?r=954
+ patch :DATA
+
+ def install
+ ENV["BUILD"] = "release"
+ ENV["PREFIX"] = prefix
+
+ system "make", "install"
+ end
+
+ test do
+ (testpath/"test.cpp").write <<-EOS.undent
+ #include <iostream>
+ #include "Options.h"
+ int main() {
+ OpenZWave::Options::Create("", "", "");
+ return 0;
+ }
+ EOS
+ system ENV.cxx, "-o", "test", "-I", prefix/"include/openzwave", "-lopenzwave", "test.cpp"
+ system "./test"
+ end
+end
+
+__END__
+diff --git a/cpp/build/Makefile b/cpp/build/Makefile
+index 24df4f5..b064029 100644
+--- a/cpp/build/Makefile
++++ b/cpp/build/Makefile
+@@ -23,16 +23,24 @@ top_srcdir := $(abspath $(dir $(lastword $(MAKEFILE_LIST)))../../)
+
+ include $(top_srcdir)/cpp/build/support.mk
+
++#Mac prefers a dylib, not a so
++ifeq ($(UNAME),Darwin)
++SHARED_LIB_NAME=libopenzwave-$(VERSION).dylib
++SHARED_LIB_UNVERSIONED=libopenzwave.dylib
++else
++SHARED_LIB_NAME=libopenzwave.so.$(VERSION)
++SHARED_LIB_UNVERSIONED=libopenzwave.so
++endif
+
+ #if we are on a Mac, add these flags and libs to the compile and link phases
+ ifeq ($(UNAME),Darwin)
+ CFLAGS += -c -DDARWIN -arch i386 -arch x86_64
+-LDFLAGS += -arch i386 -arch x86_64
++LDFLAGS += -arch i386 -arch x86_64 -dynamiclib
+ LIBS += -framework IOKit -framework CoreFoundation -arch i386 -arch x86_64
+ else ifeq ($(UNAME),FreeBSD)
+ CFLAGS += -I/usr/local/include
+ else
+-LDFLAGS += -Wl,-soname,libopenzwave.so.$(VERSION)
++LDFLAGS += -shared -Wl,-soname,$(SHARED_LIB_NAME)
+ LIBS += -ludev
+ endif
+
+@@ -74,10 +82,10 @@ indep := $(notdir $(filter-out $(top_srcdir)/cpp/src/vers.cpp, $(wildcard $(top_
+ aes := $(notdir $(wildcard $(top_srcdir)/cpp/src/aes/*.c))
+
+
+-default: $(LIBDIR)/libopenzwave.a $(LIBDIR)/libopenzwave.so.$(VERSION)
++default: $(LIBDIR)/libopenzwave.a $(LIBDIR)/$(SHARED_LIB_NAME)
+
+ clean:
+- @rm -rf $(DEPDIR) $(OBJDIR) $(LIBDIR)/libopenzwave.so* $(LIBDIR)/libopenzwave.a $(top_builddir)/libopenzwave.pc $(top_builddir)/docs/api $(top_builddir)/Doxyfile
++ @rm -rf $(DEPDIR) $(OBJDIR) $(LIBDIR)/libopenzwave.so* $(LIBDIR)/libopenzwave-*.dylib $(LIBDIR)/libopenzwave.a $(top_builddir)/libopenzwave.pc $(top_builddir)/docs/api $(top_builddir)/Doxyfile
+
+
+ -include $(patsubst %.cpp,$(DEPDIR)/%.d,$(tinyxml))
+@@ -110,7 +118,7 @@ $(LIBDIR)/libopenzwave.a: $(patsubst %.cpp,$(OBJDIR)/%.o,$(tinyxml)) \
+ @$(AR) $@ $+
+ @$(RANLIB) $@
+
+-$(LIBDIR)/libopenzwave.so.$(VERSION): $(patsubst %.cpp,$(OBJDIR)/%.o,$(tinyxml)) \
++$(LIBDIR)/$(SHARED_LIB_NAME): $(patsubst %.cpp,$(OBJDIR)/%.o,$(tinyxml)) \
+ $(patsubst %.c,$(OBJDIR)/%.o,$(hidapi)) \
+ $(patsubst %.c,$(OBJDIR)/%.o,$(aes)) \
+ $(patsubst %.cpp,$(OBJDIR)/%.o,$(cclasses)) \
+@@ -120,7 +128,7 @@ $(LIBDIR)/libopenzwave.so.$(VERSION): $(patsubst %.cpp,$(OBJDIR)/%.o,$(tinyxml))
+ $(OBJDIR)/vers.o
+ @echo "Linking Shared Library"
+- @$(LD) $(LDFLAGS) -shared -o $@ $+ $(LIBS)
+- @ln -sf libopenzwave.so.$(VERSION) $(LIBDIR)/libopenzwave.so
++ @$(LD) $(LDFLAGS) -o $@ $+ $(LIBS)
++ @ln -sf $(SHARED_LIB_NAME) $(LIBDIR)/$(SHARED_LIB_UNVERSIONED)
+
+ ifeq ($(PKGCONFIG),)
+ $(top_builddir)/libopenzwave.pc: $(top_srcdir)/cpp/build/libopenzwave.pc.in
+@@ -155,10 +163,10 @@ doc: $(top_builddir)/Doxyfile
+ @cd $(top_builddir); $(DOXYGEN)
+ endif
+
+-install: $(LIBDIR)/libopenzwave.so.$(VERSION) doc $(top_builddir)/libopenzwave.pc
++install: $(LIBDIR)/$(SHARED_LIB_NAME) doc $(top_builddir)/libopenzwave.pc
+ install -d $(DESTDIR)/$(instlibdir)/
+- cp $(LIBDIR)/libopenzwave.so.$(VERSION) $(DESTDIR)/$(instlibdir)/libopenzwave.so.$(VERSION)
+- ln -sf libopenzwave.so.$(VERSION) $(DESTDIR)/$(instlibdir)/libopenzwave.so
++ cp $(LIBDIR)/$(SHARED_LIB_NAME) $(DESTDIR)/$(instlibdir)/$(SHARED_LIB_NAME)
++ ln -sf $(SHARED_LIB_NAME) $(DESTDIR)/$(instlibdir)/$(SHARED_LIB_UNVERSIONED)
+ install -d $(DESTDIR)/$(includedir)
+ install -m 0644 $(top_srcdir)/cpp/src/*.h $(DESTDIR)/$(includedir)
+ install -d $(DESTDIR)/$(includedir)/command_classes/
+diff --git a/cpp/examples/MinOZW/Makefile b/cpp/examples/MinOZW/Makefile
+index 0f1fd50..3805a39 100644
+--- a/cpp/examples/MinOZW/Makefile
++++ b/cpp/examples/MinOZW/Makefile
+@@ -19,7 +19,7 @@ top_srcdir := $(abspath $(dir $(lastword $(MAKEFILE_LIST)))../../../)
+
+
+ INCLUDES := -I $(top_srcdir)/cpp/src -I $(top_srcdir)/cpp/tinyxml/ -I $(top_srcdir)/cpp/hidapi/hidapi/
+-LIBS = $(wildcard $(LIBDIR)/*.so $(top_builddir)/*.so $(top_builddir)/cpp/build/*.so )
++LIBS = $(wildcard $(LIBDIR)/*.so $(LIBDIR)/*.dylib $(top_builddir)/*.so $(top_builddir)/*.dylib $(top_builddir)/cpp/build/*.so $(top_builddir)/cpp/build/*.dylib )
+ LIBSDIR = $(abspath $(dir $(firstword $(LIBS))))
+ minozwsrc := $(notdir $(wildcard $(top_srcdir)/cpp/examples/MinOZW/*.cpp))
+ VPATH := $(top_srcdir)/cpp/examples/MinOZW