############################################################################ # apps/examples/webpanel/Makefile # # SPDX-License-Identifier: Apache-2.0 # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. The # ASF licenses this file to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance with the # License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # ############################################################################ include $(APPDIR)/Make.defs # Web Panel application + CGI handlers # NuttX multi-program build: space-separated lists, matched by position. CSRCS = romfs.c ws_terminal.c MAINSRC = webpanel_main.c cgi_sysinfo.c cgi_files.c cgi_upload.c cgi_renew.c PROGNAME = $(CONFIG_EXAMPLES_WEBPANEL_PROGNAME) \ $(CONFIG_EXAMPLES_WEBPANEL_CGI_SYSINFO_PROGNAME) \ $(CONFIG_EXAMPLES_WEBPANEL_CGI_FILES_PROGNAME) \ $(CONFIG_EXAMPLES_WEBPANEL_CGI_UPLOAD_PROGNAME) \ $(CONFIG_EXAMPLES_WEBPANEL_CGI_RENEW_PROGNAME) PRIORITY = $(CONFIG_EXAMPLES_WEBPANEL_PRIORITY) \ $(CONFIG_EXAMPLES_WEBPANEL_CGI_SYSINFO_PRIORITY) \ $(CONFIG_EXAMPLES_WEBPANEL_CGI_FILES_PRIORITY) \ $(CONFIG_EXAMPLES_WEBPANEL_CGI_UPLOAD_PRIORITY) \ $(CONFIG_EXAMPLES_WEBPANEL_CGI_RENEW_PRIORITY) STACKSIZE = $(CONFIG_EXAMPLES_WEBPANEL_STACKSIZE) \ $(CONFIG_EXAMPLES_WEBPANEL_CGI_SYSINFO_STACKSIZE) \ $(CONFIG_EXAMPLES_WEBPANEL_CGI_FILES_STACKSIZE) \ $(CONFIG_EXAMPLES_WEBPANEL_CGI_UPLOAD_STACKSIZE) \ $(CONFIG_EXAMPLES_WEBPANEL_CGI_RENEW_STACKSIZE) LWS_DIR = $(APPDIR)/netutils/libwebsockets CFLAGS += -I$(LWS_DIR) \ -I$(LWS_DIR)/libwebsockets/include MODULE = $(CONFIG_EXAMPLES_WEBPANEL) VPATH += content DEPPATH += --dep-path content # ROMFS image generation # Static web content goes directly into the ROMFS root (no www/ subdir) WEBPANEL_DIR = $(APPDIR)/examples/webpanel CONTENT_DIR = $(WEBPANEL_DIR)/content ROMFS_DIR = $(CONTENT_DIR)/romfs ROMFS_IMG = $(CONTENT_DIR)/romfs.img ROMFS_SRC = $(CONTENT_DIR)/romfs.c WWW_FILES = $(wildcard $(CONTENT_DIR)/www/*) $(CONTENT_DIR)/.romfs_stamp: $(WWW_FILES) $(Q) mkdir -p $(ROMFS_DIR) $(Q) cp -a $(CONTENT_DIR)/www/* $(ROMFS_DIR)/ $(Q) touch $@ $(ROMFS_IMG): $(CONTENT_DIR)/.romfs_stamp $(Q) genromfs -f $@ -d $(ROMFS_DIR) -V "WebPanelROMFS" $(ROMFS_SRC): $(ROMFS_IMG) $(Q) (cd $(CONTENT_DIR) && \ echo "#include " >$@ && \ xxd -i romfs.img | \ sed -e "s/romfs_img/webpanel_romfs_img/g" | \ sed -e "s/^unsigned char/const unsigned char aligned_data(4)/g" >>$@) content/romfs.c: $(ROMFS_SRC) context:: clean:: $(call DELFILE, $(ROMFS_SRC)) $(call DELFILE, $(ROMFS_IMG)) $(call DELFILE, $(CONTENT_DIR)/.romfs_stamp) $(Q) rm -rf $(ROMFS_DIR) distclean:: clean include $(APPDIR)/Application.mk