Difference between revisions of "Building HPM Plugin for gcc"

From Hercules Wiki
Jump to: navigation, search
(Created page with "This is a guide on how to prepare your gcc environment for a new HPM plugin. = Guide = Lets say your '''src/plugins/Makefile.in''' file looks like the following (it probab...")

Revision as of 20:18, 2 May 2013

This is a guide on how to prepare your gcc environment for a new HPM plugin.

Guide

Lets say your src/plugins/Makefile.in file looks like the following (it probably will be similar):

COMMON_H = ../common/HPMi.h ../common/cbasetypes.h

PLUGINS = sample

@SET_MAKE@

#####################################################################
.PHONY : all $(PLUGINS) sample clean help

all: $(PLUGINS)

sample: sample@DLLEXT@

clean:
	@echo "	CLEAN	plugins"
 	@rm -rf *.o

help:
	@echo "possible targets are $(PLUGINS:%='%') 'all' 'clean' 'help'"
	@echo "'sample'   - sample plugin"
	@echo "'help'     - outputs this message"

#####################################################################

%@DLLEXT@: %.c $(COMMON_H)
	@echo "	CC	$<"
	@@CC@ @DEFS@ @CFLAGS@ @CPPFLAGS@ @LDFLAGS@ @SOFLAGS@ -o ../../plugins/$@ $<

and the plugin you want to add is called sample2, it will end up like the following:

COMMON_H = ../common/HPMi.h ../common/cbasetypes.h

PLUGINS = sample sample2

@SET_MAKE@

#####################################################################
.PHONY : all $(PLUGINS) sample sample2 clean help

all: $(PLUGINS)

sample: sample@DLLEXT@

sample2: sample2@DLLEXT@

clean:
	@echo "	CLEAN	plugins"
	@rm -rf *.o

help:
	@echo "possible targets are $(PLUGINS:%='%') 'all' 'clean' 'help'"
	@echo "'sample'   - sample plugin"
	@echo "'help'     - outputs this message"

#####################################################################

%@DLLEXT@: %.c $(COMMON_H)
	@echo "	CC	$<"
	@@CC@ @DEFS@ @CFLAGS@ @CPPFLAGS@ @LDFLAGS@ @SOFLAGS@ -o ../../plugins/$@ $<

Use CTRL+F to ensure you locate all the occurrences of sample2, then edit the same way in your src/plugins/Makefile.in, save and close.
Lastly, re-run your ./configure command at the root folder of Hercules, and you're good to go. HPM