Hi, 

I am trying to change the autoconf build system such that
functions/symbols from lcms2_internal.h are no longer exported in the
shared library, similar to the Windows build. This has progressed fine
so far, but the testsuite uses several of these functions (see attached
diff). If they are no longer publicly available in the shared library,
testbed/testcms cannot be built.

How is the Windows build working around this?

Thanks
        Thomas
--- a/src/lcms2_internal.h
+++ b/src/lcms2_internal.h
@@ -771,9 +771,9 @@
 
 // Interpolation 
---------------------------------------------------------------------------------------------------------
 
-cmsInterpParams*     _cmsComputeInterpParams(cmsContext ContextID, int 
nSamples, int InputChan, int OutputChan, const void* Table, cmsUInt32Number 
dwFlags);
+CMSAPI cmsInterpParams*     _cmsComputeInterpParams(cmsContext ContextID, int 
nSamples, int InputChan, int OutputChan, const void* Table, cmsUInt32Number 
dwFlags);
 cmsInterpParams*     _cmsComputeInterpParamsEx(cmsContext ContextID, const 
cmsUInt32Number nSamples[], int InputChan, int OutputChan, const void* Table, 
cmsUInt32Number dwFlags);
-void                 _cmsFreeInterpParams(cmsInterpParams* p);
+CMSAPI void                 _cmsFreeInterpParams(cmsInterpParams* p);
 cmsBool              _cmsSetInterpolationRoutine(cmsContext ContextID, 
cmsInterpParams* p);
 
 // Curves 
----------------------------------------------------------------------------------------------------------------
@@ -824,15 +824,15 @@
 
 
 // Special Stages (cannot be saved)
-cmsStage*        _cmsStageAllocLab2XYZ(cmsContext ContextID);
-cmsStage*        _cmsStageAllocXYZ2Lab(cmsContext ContextID);
+CMSAPI cmsStage*        _cmsStageAllocLab2XYZ(cmsContext ContextID);
+CMSAPI cmsStage*        _cmsStageAllocXYZ2Lab(cmsContext ContextID);
 cmsStage*        _cmsStageAllocLabPrelin(cmsContext ContextID);
-cmsStage*        _cmsStageAllocLabV2ToV4(cmsContext ContextID);
+CMSAPI cmsStage*        _cmsStageAllocLabV2ToV4(cmsContext ContextID);
 cmsStage*        _cmsStageAllocLabV2ToV4curves(cmsContext ContextID);
-cmsStage*        _cmsStageAllocLabV4ToV2(cmsContext ContextID);
-cmsStage*        _cmsStageAllocNamedColor(cmsNAMEDCOLORLIST* NamedColorList, 
cmsBool UsePCS);
-cmsStage*        _cmsStageAllocIdentityCurves(cmsContext ContextID, int 
nChannels);
-cmsStage*        _cmsStageAllocIdentityCLut(cmsContext ContextID, int nChan);
+CMSAPI cmsStage*        _cmsStageAllocLabV4ToV2(cmsContext ContextID);
+CMSAPI cmsStage*        _cmsStageAllocNamedColor(cmsNAMEDCOLORLIST* 
NamedColorList, cmsBool UsePCS);
+CMSAPI cmsStage*        _cmsStageAllocIdentityCurves(cmsContext ContextID, int 
nChannels);
+CMSAPI cmsStage*        _cmsStageAllocIdentityCLut(cmsContext ContextID, int 
nChan);
 cmsStage*        _cmsStageNormalizeFromLabFloat(cmsContext ContextID);
 cmsStage*        _cmsStageNormalizeFromXyzFloat(cmsContext ContextID);
 cmsStage*        _cmsStageNormalizeToLabFloat(cmsContext ContextID);
@@ -899,7 +899,7 @@
 
 // LUT optimization 
------------------------------------------------------------------------------------------------
 
-cmsUInt16Number  _cmsQuantizeVal(cmsFloat64Number i, int MaxSamples);
+CMSAPI cmsUInt16Number  _cmsQuantizeVal(cmsFloat64Number i, int MaxSamples);
 int              _cmsReasonableGridpointsByColorspace(cmsColorSpaceSignature 
Colorspace, cmsUInt32Number dwFlags);
 
 cmsBool          _cmsEndPointsBySpace(cmsColorSpaceSignature Space,
@@ -933,7 +933,7 @@
 cmsBool         _cmsFormatterIsFloat(cmsUInt32Number Type);
 cmsBool         _cmsFormatterIs8bit(cmsUInt32Number Type);
 
-cmsFormatter    _cmsGetFormatter(cmsContext ContextID,
+CMSAPI cmsFormatter    _cmsGetFormatter(cmsContext ContextID,
                                  cmsUInt32Number Type,          // Specific 
type, i.e. TYPE_RGB_8
                                  cmsFormatterDirection Dir,
                                  cmsUInt32Number dwFlags);
@@ -942,8 +942,8 @@
 #ifndef CMS_NO_HALF_SUPPORT 
 
 // Half float
-cmsFloat32Number _cmsHalf2Float(cmsUInt16Number h);
-cmsUInt16Number  _cmsFloat2Half(cmsFloat32Number flt);
+CMSAPI cmsFloat32Number _cmsHalf2Float(cmsUInt16Number h);
+CMSAPI cmsUInt16Number  _cmsFloat2Half(cmsFloat32Number flt);
 
 #endif
 
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Lcms-user mailing list
Lcms-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lcms-user

Reply via email to