1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 <2018> 2019 2020 2021 2022 2023 2024 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 <2018> 2019 2020 2021 2022 2023 2024 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: Makefile question |
From: | Ralph Lange via Tech-talk <[email protected]> |
To: | EPICS Tech Talk <[email protected]> |
Date: | Mon, 10 Dec 2018 08:59:46 +0100 |
I haven’t checked the build rules yet, but I wonder if your bitshuffle_hdf5_LIBS setting is wrong, shouldn’t that be set to bitshuffle instead of bitshuffle_hdf5? It currently looks like you’re asking the build to link that library against itself. I suspect that if you fix that the build system may do what you want automatically.
I have a Makefile that builds 2 libraries. Library A must be built before library B, because B depends on A (important for dynamic builds on Windows). What is the rule I need to add to force A to be built before B?
This is the actual Makefile. bitshuffle_hdf5.lib must be built after bitshuffle.lib.
TOP=../..
include $(TOP)/configure/CONFIG
#----------------------------------------
# ADD MACRO DEFINITIONS AFTER THIS LINE
#=============================
ifeq ($(WITH_BITSHUFFLE),YES)
ifeq ($(BITSHUFFLE_EXTERNAL),NO)
LIBRARY_IOC = bitshuffle
BITSHUFFLE = $(TOP)/supportApp/bitshuffleSrc
USR_CFLAGS_Linux += -std=c99
USR_CFLAGS_WIN32 += -DLZ4_DLL_EXPORT=1
INC += bitshuffle.h
INC += bitshuffle_core.h
INC += bshuf_h5filter.h
bitshuffle_SRCS += bitshuffle.c
bitshuffle_SRCS += bitshuffle_core.c
bitshuffle_SRCS += iochain.c
SRC_DIRS += $(BITSHUFFLE)/lz4
INC += lz4.h
bitshuffle_SRCS += lz4.c
ifeq ($(WITH_HDF5),YES)
LIBRARY_IOC = bitshuffle_hdf5
bitshuffle_hdf5_SRCS += bshuf_h5filter.c
bitshuffle_hdf5_SRCS += bshuf_h5plugin.c
bitshuffle_hdf5_LIBS += bitshuffle hdf5
endif # ($(WITH_HDF5),YES)
endif # ($(BITSHUFFLE_EXTERNAL),NO)
endif # ($(WITH_BITSHUFFLE),YES)
include $(TOP)/configure/RULES
#----------------------------------------
# ADD RULES AFTER THIS LINE
I tried this rule, which would only work on Windows, but it did not work.
bitshuffle_hdf5.lib: bitshuffle.lib