blob: 18034a20266058400a17391679d1eea5de86f63a [file] [log] [blame]
Fix ebuild file and src code for cross compilation.
1. Fix dependency check (use compiler preprocessor instead of checking path existence).
2. Use flags like $(CC), etc. for cross compilation.
3. Remove inline for clang linker to find definition (compiler unfolds leaf function as optimizations).
4. Allow parallel compilation.
--- a/makefile
+++ b/makefile
@@ -11,11 +11,11 @@ LIBS=-ldl
endif
define dependencies
-@if [ ! -e /usr/include/cups ]; then echo "CUPS headers not available - exiting"; exit 1; fi
+@if ! echo '#include <cups/cups.h>' | $(CC) $(CPPFLAGS) -E ->/dev/null 2>&1; then echo "CUPS headers not available - exiting"; exit 1; fi
endef
define init
-@if [ ! -e bin ]; then echo "mkdir bin"; mkdir bin; fi
+@if [ ! -e bin ]; then echo "mkdir bin"; mkdir -p bin; fi
endef
define sweep
@@ -66,16 +66,17 @@ rastertostar: rastertostar.c
$(dependencies)
$(init)
# compiling rastertostar filter
- gcc -Wl,-rpath,/usr/lib -Wall -fPIC -O2 $(DEFS) -o bin/rastertostar src/rastertostar.c $(LIBS)
+ $(CC) -Wall $(DEFS) $(CPPFLAGS) $(CFLAGS) -fPIC $(LDFLAGS) -o bin/rastertostar src/rastertostar.c $(LIBS)
rastertostarlm: rastertostarlm.c
$(dependencies)
$(init)
# compiling rastertostarlm filter
- gcc -Wl,-rpath,/usr/lib -Wall -fPIC -O2 $(DEFS) -o bin/rastertostarlm src/rastertostarlm.c $(LIBS)
+ $(CC) -Wall $(DEFS) $(CPPFLAGS) $(CFLAGS) -fPIC $(LDFLAGS) -o bin/rastertostarlm src/rastertostarlm.c $(LIBS)
$(ppds): %.ppd.gz: %.ppd
+ $(init)
# gzip ppd file
gzip -c $< >> bin/$@
--- a/src/rastertostar.c
+++ b/src/rastertostar.c
@@ -636,7 +636,7 @@ static const struct command endJobCommand =
static const struct command yRelCommand =
{9,(char[9]){0x1b,'*','r','Y','x','x','x','x',0x00}};
-inline void debugPrintSettings(struct settings_ * settings)
+void debugPrintSettings(struct settings_ * settings)
{
fprintf(stderr, "DEBUG: pageType = %d\n" , settings->pageType);
fprintf(stderr, "DEBUG: focusArea = %d\n" , settings->focusArea);
@@ -670,7 +670,7 @@ inline void debugPrintSettings(struct settings_ * settings)
fprintf(stderr, "DEBUG: dataTreatmentRecoverFromError = %d\n", settings->dataTreatmentRecoverFromError);
}
-inline void outputCommand(struct command output)
+void outputCommand(struct command output)
{
int i = 0;
@@ -680,17 +680,17 @@ inline void outputCommand(struct command output)
}
}
-inline void outputAsciiEncodedLength(int length)
+void outputAsciiEncodedLength(int length)
{
printf("%d",length);
}
-inline void outputNullTerminator()
+void outputNullTerminator()
{
putchar(0x00);
}
-inline int getOptionChoiceIndex(const char * choiceName, ppd_file_t * ppd)
+int getOptionChoiceIndex(const char * choiceName, ppd_file_t * ppd)
{
ppd_choice_t * choice;
ppd_option_t * option;
@@ -705,7 +705,7 @@ inline int getOptionChoiceIndex(const char * choiceName, ppd_file_t * ppd)
return atoi(choice->choice);
}
-inline void getPageWidthPageHeight(ppd_file_t * ppd, struct settings_ * settings)
+void getPageWidthPageHeight(ppd_file_t * ppd, struct settings_ * settings)
{
ppd_choice_t * choice;
ppd_option_t * option;
@@ -819,7 +819,7 @@ inline void getPageWidthPageHeight(ppd_file_t * ppd, struct settings_ * settings
}
}
-inline void initializeSettings(char * commandLineOptionSettings, struct settings_ * settings)
+void initializeSettings(char * commandLineOptionSettings, struct settings_ * settings)
{
ppd_file_t * ppd = NULL;
cups_option_t * options = NULL;
--- a/src/rastertostarlm.c
+++ b/src/rastertostarlm.c
@@ -447,7 +447,7 @@ static const struct command docCutTypeCommand [4] =
static const struct command yRelCommand =
{3,(char[3]){0x1b,'I','x'}};
-inline void outputCommand(struct command output)
+void outputCommand(struct command output)
{
int i = 0;
@@ -457,17 +457,17 @@ inline void outputCommand(struct command output)
}
}
-inline void outputAsciiEncodedLength(int length)
+void outputAsciiEncodedLength(int length)
{
printf("%d",length);
}
-inline void outputNullTerminator()
+void outputNullTerminator()
{
putchar(0x00);
}
-inline int getOptionChoiceIndex(const char * choiceName, ppd_file_t * ppd)
+int getOptionChoiceIndex(const char * choiceName, ppd_file_t * ppd)
{
ppd_choice_t * choice;
ppd_option_t * option;
@@ -484,7 +484,7 @@ inline int getOptionChoiceIndex(const char * choiceName, ppd_file_t * ppd)
return atoi(choice->choice);
}
-inline void getPageWidthPageHeight(ppd_file_t * ppd, struct settings_ * settings)
+void getPageWidthPageHeight(ppd_file_t * ppd, struct settings_ * settings)
{
ppd_choice_t * choice;
ppd_option_t * option;
@@ -598,7 +598,7 @@ inline void getPageWidthPageHeight(ppd_file_t * ppd, struct settings_ * settings
}
}
-inline void initializeSettings(char * commandLineOptionSettings, struct settings_ * settings)
+void initializeSettings(char * commandLineOptionSettings, struct settings_ * settings)
{
ppd_file_t * ppd = NULL;
cups_option_t * options = NULL;