Created
October 15, 2017 10:30
-
-
Save yanosz/09198538d019d393f5e571d1a573a2c7 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
include $(TOPDIR)/rules.mk | |
# Name, version and release number | |
# The name and version of your package are used to define the variable to point to the build directory of your package: $(PKG_BUILD_DIR) | |
PKG_NAME:=helloworld | |
PKG_VERSION:=1.0 | |
PKG_RELEASE:=1 | |
# Source settings (i.e. where to find the source codes) | |
# This is a custom variable, used below | |
SOURCE_DIR:=/home/jan/src/lede_demo/helloworld | |
include $(INCLUDE_DIR)/package.mk | |
# Package definition; instructs on how and where our package will appear in the overall configuration menu ('make menuconfig') | |
define Package/helloworld | |
SECTION:=examples | |
CATEGORY:=Examples | |
TITLE:=Hello, World! | |
endef | |
# Package description; a more verbose description on what our package does | |
define Package/helloworld/description | |
A simple "Hello, world!" -application. | |
endef | |
# Package preparation instructions; create the build directory and copy the source code. | |
# The last command is necessary to ensure our preparation instructions remain compatible with the patching system. | |
define Build/Prepare | |
mkdir -p $(PKG_BUILD_DIR) | |
cp -r $(SOURCE_DIR)/* $(PKG_BUILD_DIR) | |
$(Build/Patch) | |
endef | |
# Package build instructions; invoke the target-specific compiler to first compile the source file, and then to link the file into the final executable | |
define Package/helloworld/compile | |
$(TARGET_CC) $(TARGET_CFLAGS) -o $(PKG_BUILD_DIR)/helloworld.o -c $(PKG_BUILD_DIR)/helloworld.c | |
$(TARGET_CC) $(TARGET_LDFLAGS) -o $(PKG_BUILD_DIR)/$1 $(PKG_BUILD_DIR)/helloworld.o | |
endef | |
# Package install instructions; create a directory inside the package to hold our executable, and then copy the executable we built previously into the folder | |
define Package/helloworld/install | |
$(INSTALL_DIR) $(1)/usr/bin | |
$(INSTALL_BIN) $(PKG_BUILD_DIR)/helloworld $(1)/usr/bin | |
endef | |
# This command is always the last, it uses the definitions and variables we give above in order to get the job done | |
$(eval $(call BuildPackage,helloworld)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment